Изменение настроек nginx для виртуальных серверов
По умолчанию веб-сервер Apache работает в связке с nginx. Это обеспечивает более быструю загрузку веб-страниц и экономию серверных ресурсов. Информацию о том, как Apache и nginx работают по умолчанию, смотрите в разделе Apache и nginx.
Для любого из сайтов вы можете настроить индивидуальный метод взаимодействия Apache и nginx. А именно, вы можете:
- Указать режим работы nginx как прокси-сервера для Apache или как независимого сервера, обслуживающего все HTTP-запросы к сайтам.
- Указать, какой тип контента (статический или динамический) должен обрабатывать тот или иной сервер, когда nginx используется в качестве прокси-сервера.
Эти настройки могут помочь оптимизировать производительность высокозагруженных веб-приложений с большим объемом динамического или статического контента.
Данные настройки находятся в панели клиента, на странице Сайты и домены > <имя домена> > Настройки Apache & nginx.
Примечание: Настройки, относящиеся к веб-серверу nginx доступны, только когда он включен.
На приведенных ниже схемах приведены все возможные конфигурации работы Apache в связке с nginx, а также комментарии об их преимуществах и недостатках. Обратите внимание на то, что при использовании только nginx запросы не могут достигать Apache.
Обработка статического контента
Следующая таблица показывает, как происходит обработка запроса на GIF-файл размером 2 КБ в зависимости от конфигурации nginx.
Интеллектуальная обработка статических файлов включена |
Это оптимальная конфигурация в плане производительности и надежности. Запрос передается веб-серверу Apache, который выдает в ответ только расположение файла. Поиск и доставку самого файла выполняет nginx. |
|
Интеллектуальная обработка статических файлов отключена |
nginx передает запросы и ответы без каких-либо изменений, что позволяет использовать данный режим для диагностики связанных с nginx неисправностей. Файл пересылается дважды: от Apache к nginx и от nginx к клиенту. Это может несколько снизить производительность, особенно в случае с большими файлами. |
|
Расширение GIF входит в список Обрабатывать статические файлы с помощью nginx |
Этот режим обеспечивает более быструю обработку статических файлов. Обратите внимание, что так как запросы никогда не доходят до веб-сервера Apache, они не проходят через его обработчики. Это означает, что, например, правила перезаписи или директивы |
Обработка динамического контента
Следующая таблица показывает, как будет происходить обработка РНР-файла в зависимости от конфигурации nginx.
Опция Обрабатывать PHP-файлы с помощью nginx отключена |
Это оптимальная конфигурация в плане производительности и надежности. Запрос передается веб-серверу Apache, который исполняет файл и возвращает результат. В зависимости от заданных для сайта настроек хостинга веб-сервер Apache использует один из следующих обработчиков: FastCGI, CGI или модуль Apache. Кроме того, вы можете выбрать свою версию PHP для каждого сайта. |
|
Опция Обрабатывать PHP-файлы с помощью nginx включена |
nginx самостоятельно исполняет файл с помощью обработчика PHP-FPM. Обработчик PHP-FPM обладает расширенными возможностями FastCGI, что может улучшить производительность веб-приложений, особенно с большим количеством пользователей. Обратите внимание, что так как запросы никогда не доходят до веб-сервера Apache, они не проходят через его обработчики. Это означает, что некоторые веб-приложения могут работать с ошибками. Кроме того, не будут применяться |
Примечание: Опция Обрабатывать PHP-файлы с помощью nginx становится доступной только после того, как вы включите поддержку PHP-FPM для nginx. Как это сделать, смотрите в разделе Обработчики PHP.
Добавление дополнительных директив nginx
Дополнительные директивы nginx для того или иного сайта можно указать в поле Дополнительные директивы nginx. При заполнении этого поля используйте такой же синтаксис, как в файле nginx.conf
. Например, чтобы сжимать все передаваемые через прокси-сервер запросы с помощью gzip, добавьте следующую строку:
gzip_proxied any;
Обратите внимание, что вашим клиентам поле Дополнительные директивы nginx не показывается.