Nginx/ru

nginx — это веб-сервер и обратный прокси-сервер.]] Это хорошая альтернатива популярным веб серверам, таким как Apache и lighttpd.

Установка
Перед непосредственной установкой пакета, сначала будет неплохо взглянуть на USE-флаги Nginx.

Расширенные USE-флаги
Nginx использует модули для расширения своих возможностей. Для более простого сопровождения такого модульного подхода, ebuild для nginx поддерживает расширенные ( USE_EXPAND ) USE-флаги для обозначения какие модули должны быть установлены.


 * Модули HTTP включаются через переменную NGINX_MODULES_HTTP
 * Почтовые модули включаются через переменную NGINX_MODULES_MAIL
 * Дополнительные модули включаются через переменную NGINX_ADD_MODULES

Эти переменные необходимо настроить в. Их описание можно найти в и.

Например, для включения модуля :

Вышеописанное переопределяет стандартное значение NGINX_MODULES_HTTP значением. Для включения модуля  без переопределения NGINX_MODULES_HTTP можно указать следующую запись в :

Emerge
После настройки USE-флагов установите :

Проверка установки
Стандартная конфигурация nginx определяет виртуальный сервер с корневым каталогом в. Однако в связи с, ebuild nginx'а создает только каталог , без индексного файла. Для получения рабочей стандартной конфигурации создайте каталог и простой индексный файл:

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

Чтобы проверить, что nginx запущен должным образом, перейдите в своем веб-браузере на адрес http://localhost, либо используйте один из веб-клиентов для командной строки (например, ):

Конфигурация
Конфигурация nginx находится в файле.

Доступ к одному сайту
Следующий пример показывает конфигурацию для доступа к одному сайту без динамических возможностей (таких как PHP).

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

Поддержка PHP
Добавьте следующие строки в конфигурацию nginx для включения поддержки PHP. В данном примере nginx обменивается информацией с процессом PHP через UNIX-сокет.

Для такой конфигурации необходимо собрать PHP с поддержкой менеджера процессов FastCGI, включив USE-флаг :

Пересоберите PHP с включенным  USE-флагом:

Для PHP 7.0 и более новых версий конфигурационные файлы выглядят немного иначе:

Установите часовой пояс в php-frm (файл ). Замените  на подходящее значение:

Запуск демона :

Добавьте в уровень запуска default:

Перезагрузите с измененной конфигурацией:

Alternatively, for systemd:

Список доступа по IP-адресам
Следующий пример демонстрирует получение доступа по конкретному URL (в данном случае ):


 * конкретные хосты (например 192.0.2.1 127.0.0.1)
 * и IP-сети (например 198.51.100.0/24)

Базовая аутентификация
nginx может ограничить доступ к ресурсам с помощью проверки имя пользователя и пароля:

Файл может быть сгенерирован следующим образом:

Сторонние модули
Скачайте исходные тексты сторонних модулей и поместите их в каталог. Вручную скомпилируйте выбранный модуль Nginx, после чего добавьте соответствующие строки в :

Пересоберите nginx с поддержкой сторонних модулей:

OpenRC
Запуск nginx веб-сервера:

Остановка nginx веб-сервера:

Добавление nginx в уровень запуска default, что позволит запускать сервис автоматически при загрузки системы:

Перезагрузка конфигурационных файлов nginx без сброса соединений:

Перезапуск nginx сервиса:

systemd
Запуск nginx веб-сервера:

Остановка nginx веб-сервера:

Проверка статуса сервиса:

Включение сервиса для автоматического запуска во время загрузки системы:

Перезагрузка конфигурационных файлов nginx без сброса соединений:

Перезапуск nginx сервиса:

Устранение проблем
В случае проблем следующие команды помогут найти ошибки.

Проверка конфигурации
Проверьте, что запущенная конфигурация nginx не содержит ошибок.

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

Проверка запущенных процессов
Проверьте, запущены ли процессы :

Проверка адреса привязки и портов
Проверьте, что демон nginx прослушивает правильный TCP-порт (например, 80 для HTTP или 443 для HTTPS):

Внешние ресурсы

 * https://nginx.org/en/docs/beginners_guide.html — руководство по для новичков. Весьма полезено для тех, кто мало что знает о.
 * https://nginx.com/resources/admin-guide/ — продвинутое руководство по . Информативно для «практикующих» сетевых администраторов.
 * http://wiki.nginx.org/Main — Вики nginx.
 * https://github.com/h5bp/server-configs-nginx — конфигурации от H5BP для nginx.