По умолчанию веб-сервер Apache работает в связке с nginx. Это обеспечивает более быструю загрузку веб-страниц и экономию серверных ресурсов. Информацию о том, как Apache и nginx работают по умолчанию, смотрите в разделе Apache и nginx.

Для любого из сайтов вы можете настроить индивидуальный метод взаимодействия Apache и nginx. А именно, вы можете:

  • Указать режим работы nginx как прокси-сервера для Apache или как независимого сервера, обслуживающего все HTTP-запросы к сайтам.
  • Указать, какой тип контента (статический или динамический) должен обрабатывать тот или иной сервер, когда nginx используется в качестве прокси-сервера.

Эти настройки могут помочь оптимизировать производительность высокозагруженных веб-приложений с большим объемом динамического или статического контента.

Данные настройки находятся в панели клиента, на странице Сайты и домены > <имя домена> > Настройки Apache & nginx.

Примечание: Настройки, относящиеся к веб-серверу nginx доступны, только когда он включен.

На приведенных ниже схемах приведены все возможные конфигурации работы Apache в связке с nginx, а также комментарии об их преимуществах и недостатках. Обратите внимание на то, что при использовании только nginx запросы не могут достигать Apache.

Обработка статического контента

Следующая таблица показывает, как происходит обработка запроса на GIF-файл размером 2 КБ в зависимости от конфигурации nginx.

 
image 71998
 
Интеллектуальная обработка статических файлов включена
image 71999

Это оптимальная конфигурация в плане производительности и надежности.

Запрос передается веб-серверу Apache, который выдает в ответ только расположение файла. Поиск и доставку самого файла выполняет nginx.

Интеллектуальная обработка статических файлов отключена
image 72000

nginx передает запросы и ответы без каких-либо изменений, что позволяет использовать данный режим для диагностики связанных с nginx неисправностей.

Файл пересылается дважды: от Apache к nginx и от nginx к клиенту. Это может несколько снизить производительность, особенно в случае с большими файлами.

Расширение GIF входит в список Обрабатывать статические файлы с помощью nginx
image 72001

Этот режим обеспечивает более быструю обработку статических файлов.

Обратите внимание, что так как запросы никогда не доходят до веб-сервера Apache, они не проходят через его обработчики. Это означает, что, например, правила перезаписи или директивы .htaccess применяться не будут.

Обработка динамического контента

Следующая таблица показывает, как будет происходить обработка РНР-файла в зависимости от конфигурации nginx.

 
image 71998
 
Опция Обрабатывать PHP-файлы с помощью nginx отключена
image 72002

Это оптимальная конфигурация в плане производительности и надежности.

Запрос передается веб-серверу Apache, который исполняет файл и возвращает результат.

В зависимости от заданных для сайта настроек хостинга веб-сервер Apache использует один из следующих обработчиков: FastCGI, CGI или модуль Apache. Кроме того, вы можете выбрать свою версию PHP для каждого сайта.

Опция Обрабатывать PHP-файлы с помощью nginx включена
image 72003

nginx самостоятельно исполняет файл с помощью обработчика PHP-FPM. Обработчик PHP-FPM обладает расширенными возможностями FastCGI, что может улучшить производительность веб-приложений, особенно с большим количеством пользователей.

Обратите внимание, что так как запросы никогда не доходят до веб-сервера Apache, они не проходят через его обработчики. Это означает, что некоторые веб-приложения могут работать с ошибками. Кроме того, не будут применяться .htaccess-директивы и правила перезаписи Apache.

Примечание: Опция Обрабатывать PHP-файлы с помощью nginx становится доступной только после того, как вы включите поддержку PHP-FPM для nginx. Как это сделать, смотрите в разделе Обработчики PHP.

Добавление дополнительных директив nginx

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

gzip_proxied any;

Обратите внимание, что вашим клиентам поле Дополнительные директивы nginx не показывается.