Рейтинг@Mail.ru
Сервера
Настройка web-сервера в Ubuntu
anton
06-02-2018 16:10
5 мин на чтение
2 759 views
0

В этой статье мы будем настраивать web-сервер Apache на Ubuntu. Точнее это будет не Apache, а связка софта Linux – Apache – MySQL – PHP (так называемый LAMP). Но LAMP мы будем настраивать не одной командой, как это принято у новичков, а настраивать будем все по отдельности: то есть поставим отдельно каждый пакет, а затем настроим его. Зачем так сложно? Ведь все это можно сделать вообще не используя терминал. Мы делаем так сложно, чтобы глубже разобраться в работе Linux и уметь решать возникающие проблемы.

Как и в предыдущих статьях  будем работать с этой схемой .

j2nlpo3n

К серверу testServer подключаюсь с компьютера adminPС по SSH с помощью программы Putty.

g0h5aay4

Перед тем как устанавливать web-сервер обновим все пакеты командой:

$ sudo apt-get update

После того, как все обновилось, можно приступать к установке пакетов:

$ sudo apt-get install apache2 libapache2-mod-fastcgi php5 php5-fpm phpmyadmin mysql-clinet-5.6 mysql-server-5.6

Теперь разберем каждый модуль по порядку:

  1. Apache2 – собственно сам web-сервер Apache версии 2.4
  2. Libapache2-mod-fastcgi – модуль на Apache, который позволяет работать с пакетом php7.0-fpm
  3. Php7.0-fpm – служит для связи PHP с Apache
  4. Phpmyadmin – админская панель для работы с СУБД MySQL
  5. Mysql-clinet-5.7 – MySQL-клиент
  6. Mysql-server-5.7 – MySQL-сервер

Спустя некоторое время установки консоль выдаст следующее:

2ael7qur

Здесь мы выбираем пароль для доступа к базе данных MySQL. Делаем его максимально сложным.

В следующем окне нас спрашивают под каким сервером поднимать phpMyAdmin: apache2, lighttpd.

bhkaozss

Выбираем apache2 так как мы устанавливаем именно его.

Здесь у нас спрашивают, нужно ли конфигурировать базу данных для phpmyadmin:

jocu7odi

Выбираем “Yes”. Далее нас попросят ввести пароль для базы данных MySQL.

После того, как все пакеты установятся, пробуем зайти на сервер. В браузере вводим IP-адрес сервера (в моем случае это 172.16.1.2).

pr9ljwc9

Должна открыться стартовая страничка Apache2.

Что делать дальше? А дальше будем отключать ненужные модули и включать нужные.

В первую очередь займемся модулем MPM.

Модуль MPM (Multi-Processing Module) – модуль мультипроцессовой обработки. Используется сервером Apache для обработки нескольких запросов пользователе несколькими процессами единовременно.

Чаще всего в Apache используют 3 основных варианта MPM – это Worker, PreFork или Event.

Apache MPM PreFork — данный модуль запускает по отдельному процессу на каждый запрос, каждый процесс единовременно обрабатывает только 1 поток (thread) на одно соединение. PreFork заранее создает определенное количество процессов, которые не требуют времени на отдельный вызов при поступлении запроса к серверу и не нуждаются в выполнении маршалинга (в технологии ORPC – процесс упаковки запроса, включая параметры, в стандартный формат, пригодный для передачи по сети) во время его обработки. Такой модуль является наиболее быстрым, по сравнению с другими модулями MPM. Это полезно когда на сервер Apache поступает ограниченное количество одновременных запросов. Каждый процесс ожидает, пока процессор сможет его обработать.

Минусом модуля MPM PreFork для web-сервера Apache, увеличения количество одновременно запускаемых процессов серьезно повлияет на используемую сервером память.

Плюсом модуля MPM PreFork для web-сервера Apache является его безопасность, каждый процесс изолирован от других. Его стоит использовать когда другие модули не поддерживают опцию MPM.

Apache MPM Worker – использует многопоточную систему обработки запросов, это дает возможность обработать большое количество соединений. MPM Worker запускает несколько процессов, которые, в свою очередь, запускают несколько потоков (threads).

Плюсом модуля MPM Worker для web-сервера Apache является не такое ресурсоемкий при потреблении оперативной памяти сервера,  от модуля PreFork. Улучшается обработка большого количества одновременных запросов.

Минусом модуля MPM Worker для web-сервера Apache является его некоторая нестабильность, по сравнению с PreFork (проблемы в одном процессе могут затронуть другие соединения).Модуль Worker связывает каждое keep-alive соединение с потоком, а не с запросом, поток может выполнятся долгое время, пока соединение не будет полностью разорвано.

Apache MPM Event. Похож по своему подходу на MPM Worker.  Отличие Event от Worker — он поддерживает выделенный поток для каждого установленного соединения, передает дочерним потокам запрос только после того, как он был непосредственно сделан. После обработки этого запроса – поток освобождается.

Плюсом модуля MPM Event для web-сервера Apache, после обработки запроса поток освобождается и выполняет следующие запросы. Если у вас не частые запросы клиентов, но поддерживают долгие keep-alive соединения с сервером, то этот модуль для вас.

Отключаем модуль MPM Event. Это делается командой:

$ sudo a2dismod mpm_event

Включаем модуль MPM Worker.

$ sudo a2enmod mpm_worker

Также включаем модуль Proxy FCGI (анонимайзер)

$ sudo a2enmod proxy_fcgi

Вся конфигурация сервера Apache находится в папке /etc/apache2:

$ cd /etc/apache2/

$ ls -l

skrinshot-17-02-2018-171101

Состав папки apache2:

  1. apache2.conf: основной файл настроек Apache2. Содержит глобальные настройки для всего Apache2.
  2. envvars: файл, где устанавливаются переменные окружения Apache2.
  3. mods-available: этот каталог содержит конфигурационные файлы как для загрузки модулей, так и для их настройки. Тем не менее не все модули имеют отдельные файлы настройки.
  4. mods-enabled: содержит символьные ссылки на файлы в /etc/apache2/mods-available. Когда создается символьная ссылка на файл настроек модуля, он включается при следующем рестарте apache2.
  5. ports.conf: содержит инструкции, которые определяют какие TCP порты прослушивает Apache2.
  6. sites-available: этот каталог содержит файлы настроек для виртуальных сетевых узлов (Virtual Hosts) Apache2. Виртуальные сетевые узлы позволяют настраивать Apache2 на множество сайтов с отдельными конфигурациями.
  7. sites-enabled: подобно mods-enabled содержит символьные ссылки на каталог /etc/apache2/sites-available. Аналогично, когда файл настроек из sites-available получает здесь символьную ссылку, соответствующий ему сайт будет активен при следующем перезапуске Apache

 

Поддержите проект

Друзья, сайт Netcloud каждый день развивается благодаря вашей поддержке. Мы планируем запустить новые рубрики статей, а также некоторые полезные сервисы. 

У вас есть возможность поддержать проект и внести любую сумму, которую посчитаете нужной.