Nginx/ru

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

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

Nginx использует модули для расширения своих возможностей. Для упрощения обслуживания при таком модульном подходе, файл ebuild для nginx использует USE флаги для определения того, какие модули нужно установить. Модули, относящиеся к HTTP можно включить с помощью переменной, а модули, относящиеся к почте через переменную.

Эти переменные нужно установить в. Их описание можно найти в /usr/portage/profiles/desc/nginx_modules_http.desc и /usr/portage/profiles/desc/nginx_modules_mail.desc.

Другие USE флаги следующие:

С установленными USE флагами, установите :

Не забудьте добавить nginx к уровню доступа по умолчанию.

Работа
Пакет nginx устанавливает сервисный скрипт, который позволяет администратору останавливать, запускать, либо перезапускать сервис:

Чтобы проверить, что nginx правильно работает, зайдите на него вашим браузером, либо используйте один из веб-клиентов командной строки (например, ):

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

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

Multiple site access
It is possible to leverage the  directive to split the configuration in multiple files:

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

Для поддержки такой настройки, PHP нужно собрать с поддержкой менеджера процессов FastCGI (php-fpm), что обрабатывается через USE флаг :

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

Просмотрите конфигурацию в файле и добавьте следующую строку:

Setup your timezone in the php-fpm file.

Start the php-fpm daemon:

Add php-fpm to the default runlevel:

Reload nginx with changed configuration:

Enabling an IP access list
The next example shows how to allow access to a particular URL (in this case /nginx_status) only to
 * certain hosts (e.g. 192.0.2.1 127.0.0.1)
 * and IP networks (e.g. 198.51.100.0/24)

Enabling basic authentication
nginx allows limiting access to resources by validating the user name and password:

The file can be generated using:

Enabling tls support
It is warmly suggested to support only TLS and disable known insecure ciphers.

The ebuild provides stock self signed certificates in.

Generating Certificates
TODO

Forward Secrecy
The diffie-hellman certificate can be created using :

Enabling third party modules
Download third party module source and move it to /usr/src or any other localtion. Manually compile the Nginx module. Add the following line to make.conf: Rebuild nginx with the third party module enabled.

Troubleshooting
In case of problems, the following commands can help you troubleshoot the situation.

Validate configuration
Verify that the running nginx configuration has no errors.

By running  with the   option, it will validate the configuration file without actually starting an nginx daemon.

Verify processes are running
Check if the nginx processes are running:

Verify bound addresses and ports
Verify nginx daemon is listening on the right TCP port (such as 80 for HTTP or 443 for HTTPS):

External resources

 * nginx Wiki
 * H5BP nginx config