# Настройки Apache и nginx

По умолчанию Plesk использует веб-сервер Apache (http://en.wikipedia.org/wiki/Apache_HTTP_Server) для доставки страниц ваших сайтов до клиентов (например, до браузеров, которыми пользуются посетители для просмотра вашего сайта). Для большей производительности веб-сервер Apache работает в связке с другим веб-сервером — nginx. Вы также можете использовать только nginx.

Настройки веб-сервера по умолчанию задаются администратором сервера (хостинг-провайдером). Эти настройки определяют то, как веб-серверы должны обрабатывать различные типы файлов, как использовать SSL/TLS, где хранить файлы журналов и так далее.

Однако вы (как владелец сайта) можете индивидуально настроить веб-сервер для своего сайта. Например, добавить тип стартовых страниц, ограничить доступ к сайту и так далее.

Примечание

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

## Изменение настроек Apache и nginx

Некоторые настройки Apache и nginx можно изменить на уровне домена. Они находятся на странице Сайты и домены > имя домена > Настройки Apache и nginx. Эти настройки делятся на две группы:

- Общие настройки Apache

- Настройки nginx

## Изменение типов MIME

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

`text/plain .txt`

сообщает веб-браузеру о том, что все файлы с расширением `.txt` нужно обрабатывать как простой текст. По умолчанию большинство типов MIME уже предопределены. Однако если вы обнаружите, что страницы вашего сайта не могут быть корректно обработаны веб-браузерами из-за использования нестандартных расширений, вам надо настроить один или несколько персональных типов MIME.

Чтобы настроить персональные типы MIME:

1. Откройте страницу Сайты и домены > Настройки Apache & nginx.
2. В разделе Типы MIME выберите Ввести свое значение.
3. Введите или удалите нужные типы MIME и нажмите OK.

## Настройка обработчиков Apache

Обработчики Apache сообщают веб-серверу о том, как надо обрабатывать файлы с определенными расширениями. Например, следующий обработчик

`cgi-script .cgi`

сообщает веб-серверу о том, что все файлы с расширением `.cgi` надо обрабатывать как CGI-скрипты. По умолчанию обработчики для файлов с распространенными расширениями уже предопределены. Однако если вы хотите изменить обработчик для файлов с определенным расширением, вам надо настроить один или более персональных обработчиков.

Чтобы настроить персональные обработчики:

1. Откройте страницу Сайты и домены > Настройки Apache & nginx.
2. В разделе Обработчики выберите Ввести свое значение.
3. Введите или удалите нужные заголовки и нажмите OK.

## Запрет доступа к сайту

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

- С определенных IP-адресов (например, `192.168.1.110`)
- С подсетей IP-адресов (например, `127.0.0.1/8`)
- Владельцам определенных доменных имен (например, `example.com`)
- Всем (с помощью символа «`*`»)

При попытке зайти на сайт заблокированные посетители получат сообщение об ошибке «403 Forbidden».

Чтобы настроить доступ к сайту:

1. Откройте страницу Сайты и домены > Настройки Apache & nginx.
2. В разделе Запретить доступ к сайту выберите Ввести свое значение.
3. Введите или удалите нужные IP-адреса, подсети или доменные имена.
4. Если вы заблокировали подсеть, но хотите разрешить одному или более IP-адресам этой подсети доступ к вашему сайту, введите эти адреса в поле Исключения.
5. Нажмите OK.

## Настройка стартовых страниц

Каждый раз, когда посетитель вашего сайта открывает URL-адрес, который обращается к папке, а не к определенному файлу (например, `www.example.com` или `www.example.com/example` вместо `www.example.com/index.html`), Apache ищет стартовую страницу, которую надо открыть. По умолчанию Apache ищет следующие файлы (в указанном порядке):

1. `index.html`
2. `index.cgi`
3. `index.pl`
4. `index.php`
5. `index.xhtml`
6. `index.htm`
7. `index.shtml`

Если все семь файлов присутствуют в папке, посетитель, обратившейся к ней, увидит содержимое файла `index.html`. Если файл `index.html` отсутствует, Apache ищет вместо него файл `index.cgi` и так далее. Если ни один подходящий файл не найден, по умолчанию отображается ошибка «403 Forbidden».

Plesk позволяет выбрать, какой файл стартовой страницы будет искать Apache при обращении посетителя к вашему сайту:

- Вы можете изменить порядок, в котором Apache ищет стартовые страницы (например, вам может понадобиться, чтобы он по умолчанию искал файл `index.php` вместо `index.html`).
- Вы можете добавлять в список имена файлов стартовых страниц или удалять их (например, если файл стартовой страницы вашего сайта называется `hello.php`, вы можете настроить Apache так, чтобы он открывал его по умолчанию).

Чтобы настроить файлы стартовых страниц:

1. Откройте страницу Сайты и домены > Настройки Apache & nginx.
2. В разделе Стартовые страницы выберите Ввести свое значение.
3. Введите или удалите нужные имена файлов стартовых страниц в том порядке, в котором Apache должен их искать, и нажмите OK.

## Настройка заголовка «Expires»

Заголовок `expires` в Apache указывает, как долго веб-браузеры должны хранить кэшированные копии содержимого вашего сайта до того, как заново запросить содержимое с сервера. Настройка этого заголовка может уменьшить нагрузку на сервер и ускорить работу вашего сайта.

Например, вы можете установить период истечения хранения содержимого 10 дней. Посетитель открывает ваш сайт, запрашивая страницу `index.html`. Веб-браузер посетителя хранит в кэше копию этой страницы, и в течение последующих 10 дней он должен открывать кэшированную копию при каждом обращении посетителя к сайту. На одиннадцатый день, если к странице снова было сделано обращение, браузер должен заново запросить страницу с сервера, так как у кэшированной копии истек строк хранения.

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

Чтобы сконфигурировать заголовок «Expires»:

1. Откройте страницу Сайты и домены > Настройки Apache & nginx.
2. В разделе Expires выберите Ввести свое значение.
3. Укажите нужный период истечения срока хранения (рекомендуемая длительность периода – 14 дней).
4. Если ваш сайт содержит динамическое содержимое, удостоверьтесь, что выбрана опция использовать заголовок Expires только для статических файлов.
5. Нажмите OK.

Примечание

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

## Настройка дополнительных заголовков

Вы можете настроить дополнительные заголовки для HTTP-ответов согласно следующему шаблону:

`Имя : Значение`

Заголовки HTTP-ответов содержат информацию о запрошенной странице, необходимую для совершения веб-браузерами различных действий. Например, следующий заголовок защитит посетителей вашего сайта от кликджекинга:

`X-Frame-Options: DENY`

Чтобы настроить дополнительные заголовки:

1. Откройте страницу Сайты и домены > Настройки Apache & nginx.
2. В разделе Дополнительные заголовки выберите Ввести свое значение.
3. Введите или удалите нужные заголовки и нажмите OK.

## Запрет на открытие символьных ссылок

По умолчанию в Apache можно открывать символьные ссылки. Если ваш сайт не использует символьные ссылки, мы рекомендуем отменить эту возможность, так как это может быть рискованно в плане безопасности.

Чтобы запретить Apache открывать символьные ссылки:

1. Откройте страницу Сайты и домены > Настройки Apache & nginx.
2. Поставьте галочку Запретить открывать символьные ссылки и нажмите OK.

## Хостинг с использованием только nginx

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

Примечание

Службы Plesk (например, Webmail) продолжают работать с использованием Apache, и на них не влияет переключение на хостинг только с nginx.

Чтобы включить/выключить хостинг только с nginx для домена:

1. Откройте страницу Сайты и домены > Настройки Apache & nginx.
2. В разделе Настройки nginx уберите галочку Режим прокси.
3. Нажмите Применить.

Чтобы вернуться к хостингу с использованием Apache совместно с nginx, поставьте галочку Режим прокси.

## Известные ограничения

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

- Обмен файлами становится недоступен.
- Поддержка SSI, Perl и Python становится недоступна.
- Вы можете использовать только обработчик PHP «Сервер приложений FPM с nginx».

## Настройка обработки статических файлов

По умолчанию на серверах Plesk для Linux nginx и Apache работают совместно, при этом Apache обрабатывает динамическое содержимое, а nginx используется как прокси-сервер для обработки статического содержимого. Эта схема обеспечивает оптимальное использование ресурсов сервера и позволяет Plesk быстрее обслуживать запросы к сайтам. Однако в Plesk можно выбрать, как должно быть обработано статическое содержимое сайтов.

## Обработка всего статического содержимого с помощью nginx

Такое поведение используется в Plesk для Linux по умолчанию. Как только поступает запрос на статическое содержимое, Apache только определяет местоположение соответствующего файла, а nginx находит и обрабатывает этот файл.

Чтобы обрабатывать все статическое содержимое с помощью nginx:

1. Перейдите в раздел Сайты и домены > Настройки Apache и nginx и прокрутите вниз до раздела «Настройки nginx».
2. Выберите опции Режим прокси и Интеллектуальная обработка статических файлов.
3. Удостоверьтесь, что опция Обрабатывать статические файлы с помощью nginx не выбрана.
4. Нажмите OK.

## Обработка с помощью nginx только файлов с определенными расширениями

При необходимости вы можете сделать так, чтобы только файлы с определенными расширениями обрабатывались как статический контент с помощью nginx. Остальные файлы, которые обычно классифицируются как статическое содержимое, будут обрабатываться с помощью Apache. Важно отметить, что в этом случае запросы к файлам с указанными расширениями вообще никогда не достигают Apache. Следовательно, они не проходят через обработчики Apache. Это означает, к примеру, что правила перезаписи директив `.htaccess` не применяются.

Чтобы обрабатывать только определенное содержимое с помощью nginx:

1. Перейдите в раздел Сайты и домены > Настройки Apache и nginx и прокрутите вниз до раздела «Настройки nginx».
2. Выберите опции Режим прокси и Интеллектуальная обработка статических файлов.
3. По умолчанию некоторые расширения статических файлов уже заданы в поле Обрабатывать статические файлы с помощью nginx. Вы можете добавить или удалить нужные расширения. Используйте пробел или символ «|» в качестве разделителя для расширений.
4. Нажмите OK.

Примечание

Включение опции “Обрабатывать статические файлы с помощью nginx” автоматически выключает режим “Интеллектуальная обработка статических файлов”, даже если стоит соответствующая галочка.

## Обработка всего статического и динамического содержимого с помощью Apache

При необходимости вы можете отключить nginx и настроить Apache на обработку всего содержимого, как статического, так и динамического. Это может быть полезно в некоторых случаях, например, для диагностики неисправностей nginx. Мы не рекомендуем использовать Apache для обработки всего содержимого на рабочих сайтах.

Чтобы обрабатывать все статическое и динамическое содержимое с помощью Apache:

1. Перейдите в раздел Сайты и домены > Настройки Apache и nginx и прокрутите вниз до раздела «Настройки nginx».
2. Поставьте галочку Режим прокси.
3. Снимите галочки Интеллектуальная обработка статических файлов и Обрабатывать статические файлы с помощью nginx.
4. Нажмите OK.

## Настройка кэширования с помощью nginx

Настройка кэширования с помощью nginx позволяет прокси-серверу nginx кэшировать определенное динамическое содержимое сайта. Кэшированные данные хранятся в течение короткого периода времени (обычно не дольше нескольких секунд). Это может помочь сократить время загрузки сайта и уменьшить нагрузку на сервер.

Настройка кэширования с помощью nginx рекомендуется только для сайтов, обладающих определенными свойствами (например, для популярных блогов или новостных сайтов):

- Высокий трафик.
- Обновление контента каждые несколько секунд.

Настройка кэширования с помощью nginx может быть бесполезной и даже опасной для сайтов со следующими характеристиками:

- Умеренный или низкий трафик.
- Обновление содержимого реже, чем раз в несколько секунд.
- Использование персонализированных данных (например, данных о географическом местоположении посетителя сайта или содержимом его корзины).

Чтобы включить кэширование с помощью nginx:

1. Откройте страницу Сайты и домены > Настройки Apache & nginx.
2. В разделе “Настройки nginx” поставьте галочку “Включить кэширование с помощью nginx”.
3. (Необязательно) Вы можете изменить настройки кэширования с помощью nginx. Если вы не знакомы с кэшированием с помощью nginx, мы рекомендуем вам оставить настройки по умолчанию. Неправильная установка этих настроек может привести к снижению производительности сайта и сервера.
4. Нажмите OK.

## Настройки кэширования с помощью nginx

Настройки кэширования с помощью nginx, отображаемые в интерфейсе Plesk, соответствуют директивам nginx и некоторым записям в конфигурационном файле nginx. Подробности можно увидеть в таблице ниже.

Настройка кэширования с помощью nginx в интерфейсе Plesk | Соответствующая директива nginx | Соответствующий параметр nginx (если он есть)
--- | --- | ---
“Размер кэша“ | proxy_cache_path | `max_size`
“Время ожидания кэша“ | proxy_cache_valid |
“Ключ кэша“ | proxy_cache_key |
“Кэшировать запросы с cookie-файлами“ | Указывается в конфигурационном файле nginx |
“Запретить кэширование для адресов“ | Указывается в конфигурационном файле nginx |
“Не кэшировать, если” | proxy_cache_bypass |
“Возвращать устаревшие записи кэша” | proxy_cache_use_stale |

Примечание

Для сайтов, использующих nginx вместе с обработчиком PHP-FPM, директивы `proxy_cache*` заменяются на `fastcgi_cache*`. Например, настройка “Ключ кэша“ соответствует директиве `fastcgi_cache_key` вместо `proxy_cache_key`.

## Настройка “Кэшировать запросы с cookie-файлами“

По умолчанию nginx не кэширует HTTP-запросы, которые содержат HTTP-заголовок Сookie . Вы можете изменить это поведение и настроить в nginx кэширование HTTP-запросов, содержащих некоторые cookie-файлы, указав имена этих файлов в поле “Кэшировать запросы с cookie-файлами”. Например, если вы укажете имена cookie-файлов `_ga` и `_gid`, nginx будет кэшировать только те HTTP-запросы, заголовок Сookie которых содержит имена _ga или `_gid`. Nginx не будет кэшировать HTTP-запросы с заголовком Сookie, содержащим хотя бы одно имя cookie-файла, не указанное в этом поле.

## Настройка “Запретить кэширование для адресов“

Вы можете сократить нагрузку на сервер, запретив nginx кэшировать определенное веб-содержимое (например, динамическое содержимое, которое нечасто просматривается). Для этого укажите необходимые $request_uri в поле “Запретить кэширование для адресов”. Например, если вы укажете адрес `/wp-admin/`, nginx не будет кэшировать содержимое, относящееся к панели управления администратора WordPress.

Примечание

Если вы хотите указать несколько значений в поле “Кэшировать запросы с cookie-файлами“ или “Запретить кэширование для адресов“, укажите каждое из них в отдельной строке.

## Настройки по умолчанию

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

Значения, которые вы введете вручную, заменят собой настройки по умолчанию. Единственное исключение - это параметр Запретить доступ к сайту: при регулировании доступа к вашему сайту будут учитываться IP-адреса как из стандартной конфигурации, так и введенные вами. В случае конфликта (например, если вы разрешите доступ IP-адресу, запрещенному в стандартной конфигурации), будут использоваться ваши значения.