0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое Nginx

Что такое Nginx

Содержание:

Nginx — мощный инструмент для развертывания веб-сервера, который при правильной настройке превосходит Apache. Области применения Nginx весьма обширны — от кэширования HTTP до создания инвертированного прокси-сервера.

Сейчас Nginx обслуживает примерно 30,8% всех существующих сайтов мира, о чьих веб-серверах есть информация в открытом доступе. Понимание, что из себя представляет Nginx и как этот программный продукт можно применять на практике, помогает эффективно решать задачи во многих областях IT-индустрии.

В этой статье рассмотрим принцип работы Nginx, а также его функционал, отличия от Apache и способ установки на конкретную ОС.

Общие параметры

Если вы хотите, чтобы ваши клиенты могли создавать почтовые учетные записи через Панель клиента и использовать почтовые услуги, предоставляемые почтовым сервером Plesk, оставьте выбранной опцию Включить функции управления почтой в Plesk. Если вы используете внешний почтовый сервер, отключите эту опцию.

Вы можете изменить установленный почтовый сервер и установленный сервер IMAP/POP3 с помощью соответствующих ссылок, ведущих на страницу установщика Plesk.

Если вам необходимо ограничить размер письма, которое может быть отправлено через ваш сервер, укажите нужное значение в килобайтах в поле Максимальный размер сообщения. В противном случае оставьте поле пустым.

В Plesk для Linux вы можете изменить стандартные ограничения почтового сервера на количество одновременных подключений. Это полезно, например, для почтовых хостеров, желающих увеличить количество одновременных подключений к почтовому серверу.

Также вы можете изменить ограничение на количество подключений с одного и того же IP-адреса. Низкое значение этого ограничения может повлиять на работу пользователей, которые подключаются к почтовому серверу с нескольких компьютеров с брандмауэром, а также пользователей, у которых несколько почтовых аккаунтов.

Чтобы установить подходящие значения, вам нужно оценить не только возможное общее количество подключений, но и ресурсы памяти и процессора на сервере.

Общее количество подключений рассчитывается как сумма всех подключений через один и тот же протокол(IMAP, POP3, IMAP over SSL/TLS или POP3 over SSL/TLS), то есть для любого из протоколов действует одно ограничение.

Если вы используете Courier IMAP, вы можете указать следующие ограничения:

  • Максимальное количество подключений (IMAP, POP3, IMAP over SSL/TLS или POP3 over SSL/TLS). Эта настройка означает максимальное количество процессов IMAP или POP3, которое может быть запущено на сервере.
  • Максимальное количество подключений на один IP-адрес. Эта настройка означает максимальное количество подключений по одному протоколу, которое сервер будет принимать от одного IP-адреса.

Эти настройки соответствуют конфигурационным параметрам Courier IMAP MAXDAEMONS и MAXPERIP .

Если вы используете Dovecot, вы можете указать следующие ограничения:

  • Максимальное количество подключений (IMAP, POP3, IMAP over SSL/TLS или POP3 over SSL/TLS). Эта настройка означает максимальное количество одновременно подключенных пользователей почты.
  • Максимальное количество подключений на один IP-адрес пользователя. Эта настройка означает максимальное количество подключений по одному протоколу, которое почтовый пользователь может установить с одного IP-адреса.

Эти настройки соответствуют конфигурационным параметрам Dovecot process_limit и mail_max_userip_connections .

(Необязательно) Чтобы разрешить клиентам отправку почтовых сообщений через порт 587, поставьте галочку “Включить службу SMTP на порту 587 на всех IP-адресах” (в Plesk для Linux) или “Включить отправку сообщений на всех IP-адресах” (в Plesk для Windows) и разрешите соединения на порту 587 в настройках брандмауэра.

Вы можете также попросить клиентов указать порт 587 в качестве порта для исходящих SMTP-соединений в настройках почтовых программ.

В Plesk для Linux с почтовым сервером Postfix вы можете изменить IP-адрес, используемый для отправки почты. Кроме того, если ваш сервер отправляет почту с IP-адресов доменов, вы можете указать имя компьютера, которое следует использовать в приветствиях SMTP.

Выберите один из трех вариантов:

Отправлять с IP-адресов доменов. По умолчанию почта с каждого домена отправляется с его IP-адреса. Имя компьютера, используемое в приветствиях SMTP, является именем сервера Plesk, указанным на странице Инструменты и настройки > Настройки сервера. В результате включения этой опции почта, отправляемая с некоторых или всех доменов, может помечаться как спам, если имя сервера Plesk распознается неправильно, или если IP-адрес домена отличается от адреса, которому соответствует имя сервера Plesk.

Лучше всего использовать эту опцию, если на вашем сервере Plesk используется всего один IP-адрес.

Отправлять с IP-адресов доменов и использовать имена доменов в приветствии SMTP-сервера. Если выбрать эту опцию, то приветствие SMTP будет содержать имя домена, с которого отправляется сообщение.

Предупреждение: В результате включения этой опции почта, отправляемая с некоторых или всех доменов, может помечаться как спам, если почтовый сервер получателя использует cbl, и более одного домена на сервере Plesk используют один и тот же IP-адрес.

Кроме того, использование этой опции на серверах Plesk, где размещено большое количество (свыше 100) доменов, может привести к значительному увеличению нагрузки на сервер.

Лучше всего использовать эту опцию, если вы предоставили каждому домену на сервере Plesk выделенный IP-адрес, а общее количество доменов на сервере невелико.

  • Отправлять с указанных IP-адресов. Возможно, вы захотите использовать определенные IPv4 и IPv6 адреса для всей исходящей почты. Отправка всей почты с определенного адреса может пригодиться, например, если IP-адрес почтового сервера попал в публичные черные списки, такие как Spamhaus или OpenBL. Если вы выберете Нет, то исходящая почта отправляться не будет.
Читать еще:  Пользовательский агент браузера

Технические подробности

  • Для каждого узла кластера при его создании или изменении основного IP-адреса регистрируется рассинхронизация основного IP-адреса, при синхронизации настраивающая на узле кластера его основной IP-адрес. При этом на узле кластера, если он имеет установленный Nginx:
  1. В основном конфигурационном файле веб-сервера Nginx создается виртуальный сервер, по умолчанию обрабатывающий запросы на основном IP-адресе узла кластера (прослушивает порты 80 и 443)
  2. Снимается признак приоритета для всех WWW-доменов, которые были приоритетными на новом основном IP-адресе узла кластера. В дальнейшем WWW-домены, созданные на основном IP-адресе узла кластера, нельзя использовать как приоритетные
  • Настройки виртуального сервера nginx-прокси находятся в файле masterproxy.conf директории включаемых конфигурационных файлов Nginx (conf.d)
  • Виртуальные директории для пользовательских приложений конфигурируются только при определении расположения соответствующей роли пользователя, не ранее

Почему Nginx?

Nginx — это быстрый HTTP сервер и обратный прокси-сервер (reverse proxy), разработанный Игорем Сысоевым. Основным функционалом Nginx является обслуживание статических запросов, обратное проксирование (reverse proxy) и балансировка нагрузки. С этими задачами веб-сервер Nginx справляется значительно лучше, чем Apache, за счет своей архитектуры. Поэтому в нашей задаче мы вынесем обработку статических запросов из Apache в Nginx и настроим Nginx как обратный прокси-сервер (reverse proxy) для остальных запросов.

Пошаговая инструкция установки Postfix и Dovecot на Ubuntu

В этом руководстве будет рассмотрен процесс установки агентов работы с электронной почтой Postfix, Dovecot на виртуальные серверы под управлением операционной системы Ubuntu 16.04 x64.

Что это такое

Postfix — агент передачи электронной почты для обмена в сети Интернет и внутри локальной сети. Преимуществом Postfix является простота настройки и конфигурации. Может использоваться для отправки системных сообщений.

Dovecot — агент получения электронной почты по протоколам IMAP и POP3.

Установка Postfix

Прежде всего следует обновить локальную базу пакетов:

sudo apt-get update

Далее установите пакет postfix из главного репозитория:

sudo apt-get install postfix

После запуска пользовательского интерфейса в списке типов конфигурации сервера выберите «Internet Site» для автоматической генерации файла конфигурации main.cf.

В поле «System mail name» укажите полное доменное или локальное имя сервера, например: example.org.

Доменное имя сервера можно посмотреть с помощью утилиты nslookup:

Настройка Postfix

Создайте файл virtual в директории /etc/postfix/ с помощью команды touch, в этом файле будут храниться почтовые адреса и имена пользователей, которым доставляется почта:

Создайте директорию private в /etc/postfix/ с помощью команды mkdir, в которой будут храниться файлы настройки yandex smtp:

sudo mkdir private

Создайте следующие файлы в директории /etc/postfix/private/ с помощью команды touch:

touch canonical sender_relay sasl_passwd

Виртуальный сервер Ubuntu

  • Бесплатное тестирование
  • API к панели управления
  • От 318 руб./мес.

Далее необходимо внести изменения в файл конфигурации main.cf

Откройте файл в текстовом редакторе в привилегированном режиме:

sudo nano /etc/postfix/main.cf

Записи имеют вид: параметр = значение1, значение2, значение3. Комментарии начинаются с символа #.

Измените значение параметра myhostname на ваше доменное имя, если доменного имени нет, то оставьте по умолчанию:

Измените значение параметра mydestination, добавив значение вашего ip-адреса через запятую. Ip-адрес можно посмотреть с помощью следующей команды (параметр inet addr):

ifconfig | grep «inet addr» -m 1

Чтобы письмо могло быть переслано на другие домены или адреса, замените параметр alias_maps параметром virtual_alias_maps.

Измените расположение хэша на /etc/postfix/virtual:

virtual_alias_maps = hash:/etc/postfix/virtual
Значение параметра mynetworks, определяющего авторизованные сети:
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

127.0.0.0/8 — безопасно: авторизовать только локальную машину

Для отправки почты с помощью Yandex SMTP добавьте в конец файла следующие строки:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_sasl_mechanism_filter = login
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/private/sender_relay
sender_canonical_maps = hash:/etc/postfix/private/canonical

Описание параметров:
smtp_sasl_auth_enable – параметр отвечает, за включение поддержки sasl для проверки подлинности почтовых серверов
smtp_sasl_password_maps – указываем путь до файла sasl_passwd с внешними учетными данными
smtp_sasl_security_options – параметр безопасности
Возможные значения параметра:

  • noanonymous — не использовать механизмы, которые разрешают анонимную проверку подлинности;
  • noplaintext — не использовать механизмы, которые передают незашифрованное имя пользователя и пароль;
  • nodictionary — не использовать механизмы, которые уязвимы для атак по словарю;
  • mutual_auth — использовать только механизмы, которые прошли проверку подлинности клиента и сервера друг с другом.

smtp_sasl_type — тип плагина sasl, который должен использоваться для проверки подлинности, по умолчанию cyrus.
smtp_sasl_mechanism_filter список поддерживаемых методов аутентификации
smtp_sender_dependent_authentication – проверка подлинности будет зависеть от домена отправителя
sender_dependent_relayhost_maps — указываем путь до файла sender_relay
sender_canonical_maps — указываем путь до файла canonical

В файл /etc/postfix/private/canonical внесите изменения:
@yandex.ru user_name@yandex.ru

В файл /etc/postfix/private/sender_relay внесите изменения:
@yandex.ru smtp.yandex.ru

В файл /etc/postfix/private/sasl_passwd внесите изменения, где вместо *** укажите свой пароль:
[smtp.yandex.ru] user@yandex.ru:***

Для переадресации писем на другие почтовые адреса необходимо создать псевдонимы.

Откройте файл virtual в текстовом редакторе в привилегированном режиме:

sudo nano /etc/postfix/virtual

Укажите произвольные электронные адреса, которые необходимо создать, и имена существующих пользователей, которым нужно доставлять почту:
mail@example.org user1
mail2@example.org user1, user2

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

cut -d: -f1 /etc/passwd

Преобразуем файл /etc/postfix/virtual в файлы директории /etc/postfix/private/ в справочные таблицы с помощью команды postmap: sudo postmap /etc/postfix/virtual sudo postmap /etc/postfix/private/*

После внесения изменений в конфигурационные файлы необходимо перезапустить сервис:

sudo /etc/init.d/postfix restart

На Ubuntu Server 16 с помощью команды iptables необходимо открыть порты для почтовых служб:

iptables -A INPUT -p tcp —dport 25 -j ACCEPT

Проверка почтового сервиса Postfix

Для более удобной работы с почтой установите утилиту mutt:

sudo apt-get install mutt

Для проверки корректности работы сервиса отправьте электронное письмо на любой почтовый ящик:
echo «First message» | mutt -s «msg» mail@example.com

Читать еще:  Оконный менеджер i3. Тайловый оконный менеджер i3. Погода в строке состояния

Замечание: письма отправленные на почтовые адреса Google попадают в спам.

Получение писем с помощью Dovecot

Установите пакеты из главного репозитория:

sudo apt-get install dovecot-imapd dovecot-pop3d

В файл /etc/dovecot/dovecot.conf добавьте следующую строку с перечнем протоколов:

protocols = pop3 pop3s imap imaps

В файле /etc/dovecot/conf.d/10-mail.conf проверьте содержимое параметра

После внесения изменений в конфигурационные файлы необходимо перезапустить сервис:

sudo /etc/init.d/dovecot restart

Внесите изменения в файл /etc/hosts, добавив свое доменное имя:

Далее с помощью команды iptables необходимо открыть порты для почтовых служб:

iptables -A INPUT -p tcp —dport 220 -j ACCEPT
iptables -A INPUT -p tcp —dport 993 -j ACCEPT
iptables -A INPUT -p tcp —dport 110 -j ACCEPT
iptables -A INPUT -p tcp —dport 995 -j ACCEPT

Для проверки корректности работы сервиса отправьте электронное письмо с любого почтового ящика на созданный электронный адрес и проверьте с помощью утилиты mutt. Письмо должно быть отправлено только существующему пользователю и на адрес с указанием доменного имени, а не ip-адреса, в противном случае письмо получено не будет.

В целом система мне понравилась. Радует наличие огромного количества проверок. Единственное что настоятельно рекомендую перед любыми действиями делать резервную копию, ну и конечно должны автоматически создаваться резервные копии за период который максимально позволяет размер дискового массива сервера резервных копий.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читая их я получаю информацию которая позволяет мне улучшить качество написания статей. Кроме того, оставляя комментарии вы помогаете сайту получить более высокий рейтинг у поисковых систем. Давайте общаться.

Как установить LEMP на сервере Debian 10

Стек «LEMP» представляет собой смесь программного обеспечения с открытым исходным кодом, которое обычно устанавливается на сервере Linux для развертывания динамических приложений. Этот термин является аббревиатурой, обозначающей операционную систему Linux, веб-сервер Nginx, базу данных MariaDB и PHP-интерпритатор.

Хотя этот стек «LEMP» обычно содержит MySQL в качестве системы управления базами данных, некоторые дистрибутивы Linux, такие как Debian, используют MariaDB в качестве замены MySQL.

Требования

В этой статье мы расскажем вам, как установить и настроить среду LEMP на сервере Debian 10, используя MariaDB в качестве платформы управления базами данных.

Установка веб-сервера Nginx в Debian 10

Nginx — это кроссплатформенный, открытый, легкий, но мощный и простой в настройке HTTP, почтовый прокси-сервер и универсальный TCP/UDP-прокси-сервер с модульной архитектурой.

Некоторые из его основных функций включают обслуживание статических и индексных файлов; ускоренная поддержка с кэшированием серверов FastCGI, uwsgi, SCGI и Memcached, балансировка нагрузки и отказоустойчивость, поддержка SSL и TLS SNI, поддержка HTTP/2 с взвешенной и основанной на зависимостях приоритетностью.

Чтобы установить пакет Nginx, используйте менеджер пакетов Debian apt, как показано.

После завершения установки Nginx установщик активирует systemd, чтобы на данный момент запустить службу Nginx и включит ее автоматический запуск при загрузке системы. Вы можете проверить состояние Nginx, используя следующую команду systemctl.

Вы также можете использовать следующие важные команды для запуска, остановки и перезагрузки конфигурации службы Nginx в systemd.

Далее, если у вас работает брандмауэр UFW (он обычно отключен по умолчанию), вам нужно открыть порты 80 (HTTP) и 443 (HTTPS), чтобы разрешить входящий трафик на Nginx.

Hа этом этапе вам необходимо проверить, правильно ли установлен Nginx, работает ли он и может ли обслуживать веб-страницы. Для этого откройте веб-браузер и укажите следующий URL-адрес для доступа к веб-странице Nginx Debian по умолчанию.

Установка MariaDB в Debian 10

Затем вам необходимо установить систему баз данных, чтобы иметь возможность хранить данные и управлять ими для вашего веб-сайта или веб-приложения. Debian 10 поддерживает MariaDB по умолчанию, как замену MySQL.

Чтобы установить MariaDB, выполните следующую команду.

Затем проверьте состояние службы MariaDB, поскольку она автоматически запускается системой systemd и позволяет запускаться при загрузке системы, чтобы убедиться, что она запущена и работает, используйте следующую команду.

Для управления (запуска, перезапуска, остановки и перезагрузки) службы MariaDB в systemd вы можете использовать следующую команду.

Далее, развертывание MariaDB будет небезопасным по умолчанию. Вам необходимо запустить сценарий оболочки, который поставляется вместе с пакетом, чтобы позволить вам повысить безопасность базы данных.

После запуска скрипта вам понадобится выполнить ряд следующих вопросов, чтобы изменить настройки по умолчанию для установки MariaDB, как показано на следующем снимке экрана.

Установка PHP-FPM (Fast Process Manager) в Debian 10

В отличие от Apache и других веб-серверов, Nginx не обеспечивает встроенную поддержку PHP, поскольку использует PHP-FPM для обработки запросов на страницы PHP. PHP-FPM — это альтернативный демон FastCGI для PHP, который позволяет веб-сайту обрабатывать большие нагрузки, используя рабочие процессы для обработки запросов.

Чтобы установить PHP-FPM версии 7.3 и модуль PHP для связи с системой баз данных MariaDB/MySQL, выполните следующую команду.

После установки PHP-FPM установщик активирует systemd, чтобы запустить службу PHP-FPM и разрешить ее автоматический запуск при загрузке системы. Чтобы проверить, работает ли он, выполните следующую команду.

Вы также можете запустить, перезапустить, остановить и перезагрузить конфигурацию службы PHP-FPM в systemd следующим образом.

Затем вам нужно защитить PHP-FPM, внеся некоторые изменения в файл конфигурации /etc/php/7.3/fpm/php.ini следующим образом.

Найдите; cgi.fix_pathinfo=1 раскомментируйте его, удалив; символ в начале, установите его значение равным 0. Это препятствует тому, чтобы Nginx позволял файлам не-PHP выполняться как PHP.

По умолчанию PHP-FPM настроен на прослушивание сокета UNIX, /run/php/php7.3-fpm.sock, как определено в файле конфигурации /etc/php/7.3/fpm/pool.d/www.conf. Вы должны настроить весь свой блок сервера (или виртуальные хосты) для использования этого сокета, если они должны обрабатывать и обслуживать страницы PHP.

Читать еще:  Как подделать размер оперативной памяти?

Вы можете использовать файл конфигурации блока сервера Nginx по умолчанию /etc/nginx/sites-available/default, чтобы протестировать его.

Найдите следующий раздел и раскомментируйте его, чтобы передать PHP-скрипты серверу FastCGI, как показано на скриншоте.

Затем проверьте правильность структуры конфигурации Nginx, используя следующую команду.

Если конфигурация Nginx в порядке, чтобы применить недавно сделанные изменения, перезапустите службы php7.3-fpm и nginx следующим образом.

Тестирование обработки PHP-FPM на Nginx

После настройки PHP-FPM и Nginx для совместной работы необходимо проверить, могут ли две службы обрабатывать и обслуживать страницы PHP для клиентов. Для этого создайте простой PHP-скрипт в вашем веб-документе DocumentRoot следующим образом.

Наконец, откройте браузер и введите следующий адрес, чтобы увидеть конфигурации PHP в системе, сгенерированные функцией phpinfo().

Вывод

В этой статье мы показали, как установить и настроить стек LEMP в Debian 10.

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Заключение

На этом у меня все. Не рассмотрел еще один возможный вариант, когда вы проксируете https сайт и передаете инфу на бэкенд тоже по https. Нет под рукой готового примера, чтобы проверить, а заочно не стал рисовать конфиг. По идее, ничего сложного в этом нет, настраиваете nginx на обоих серверах с одним и тем же сертификатом. Но наверняка не скажу, что все заработает при этом. Возможно, есть какие-то нюансы с таким проксированием. Мне обычно не приходится так делать.

Как я уже писал в начале, в основном проксирую запросы с одного внешнего веб сервера на закрытый периметр сети, куда нет никому доступа. В этом случае у меня нет необходимости использовать https при передаче запросов на бэкенд. В качестве бэкенда не обязательно будет отдельный сервер. Это запросто может быть контейнер на этом же сервере.

Чтобы ваш веб-сервер работал с высокой производительностью и мог обработать большое количество запросов от клиентов, одного железа недостаточно. Важно правильно настроить работу связки nginx и php-fpm.

Настройка nginx

Откройте файл /etc/nginx/nginx.conf и изменит конфигурацию Nginx следующим образом:

  • worker_processes 2; — уставите количество рабочих процессов равным количеству ядер на сервере.
  • worker_connections 1024; — определяет количество соединений одного рабочего процесса. Выставляйте значения от 1024 до 4096.
  • use epoll; — оптимальный вариант метода соединений для Linux.
  • multi_accept on; — nginx будет принимать максимальное количество соединений.
  • tcp_nodelay on; — отправляет заголовки и начало файла в одном пакете.
  • tcp_nopush on;

Для проектов в которых содержится большое количество статических файлов, обязательно включайте gzip сжатие:

Добавьте большое количество типов файлов, чтобы все проверки на googlespeed проходили:
gzip_types application/atom+xml application/javascript text/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json font/ttf application/x-font-ttf application/vnd.ms-fontobject application/font-woff application/font-woff2 application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vnd.wap.wml text/vtt text/x-component text/x-cross-domain-policy;

Настройка сжатия позволит ускорить ваш проект.

  • keepalive_timeout 30; — веб-сервер будет ожидать 30 секунд, прежде чем закрыть keepalive соединения
  • keepalive_requests 100; — максимальное количество keepalive запросов от одного клиента
  • reset_timedout_connection on; — включите данный параметр, если не хотите, чтобы соединение от клиента, который перестал отвечать, сбрасывались.
  • client_body_timeout 10; — веб-сервер будет ждать 10 секунд подтверждение запроса от клиента, по истечению этого времени, соединение сбросится.
  • send_timeout 2; — если клиент прекращает чтение ответа от веб-сервера, nginx сбросит соединение с ним.

Если на вашем сайте не предусмотрена загрузка больших файлов, ограничьте это с помощью nginx:

  • client_max_body_size 2m; — сервер не примет запросы больше 2 Мб.

Если контент на вашем проекте меняется не так часто, вы можете использовать кеширование «expires max;» Либо добавьте соответствующую опцию в конфигурационный файл вашего хоста для нужного типа файлов, например:

* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ <
expires 7d;

Кеш для указанных типов файлов будет хранится 7 дней. Вы можете управлять кешем с помощью данной функции. После всех модификаций, не забывайте выполнять перезапуск nginx:

# systemctl restart nginx

Настройка php-fpm

При установке php-fpm вы сразу перевели его на unix-сокет. Это дает существенных прирост в производительности. По оценкам производительность вырастает в 2-3 раза. Остальные же параметры php-fpm нужно настраивать под каждый проект отдельно, рассмотрим пример настройки для сервера с 1024 Мб памяти.

Для php-fpm мы можем выделить примерно 512 мб, оставив остальное под БД и nginx.

В конфигурационный файл /etc/php-fpm/www.conf, добавим:

  • pm.max_children = 18 — максимальное число дочерних процессов
  • pm.start_servers = 6 — число дочерних процессов, создаваемых при запуске
  • pm.min_spare_servers = 4 — минимальное число неактивных процессов сервера
  • pm.max_spare_servers = 16 — максимальное число неактивных процессов сервера
  • pm.max_requests = 400 — число запросов дочернего процесса, после которого процесс будет перезапущен.

Все параметры нужно изменять при анализе нагрузки на ваш проект, данные значения теоретические.

На текущий сервер я сразу же установил последнюю версию CMS Bitrix, для проверки производительности. На мой взгляд это самая ресурсоемкая CMS и результаты получились неплохие, если учитывать, что это виртуальная машина на KVM с одним ядром (vCPU) и 1024 ОЗУ:

Оптимизацию настроек MariaDB я не расписывал, так как есть соответствующая статья на сайте. Я сформировал параметры для my.cnf по статье и база показала отличный результат.

При запуске сайте вы заметите невооруженным взглядом, что nginx + php-fpm будет намного быстрее обрабатывать ваши запросы и возвращать страницы, чем apache2 + mod_php. Если у вас есть возможность провести нагрузочные тесты во время настройки сервера, то это несомненно будет плюсом, если же такой возможности нет, вы можете изменить параметры для своих ресурсов исходя из нашего мануала.

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector