В нашей базовой статье » NGINX — быстрый и ресурсосберегающий веб-сервер » мы уже рассказали вам, что такое NGINX и как его установить и настроить в вашей системе. В следующем руководстве мы предлагаем вам обзор основных команд и параметров конфигурации современного программного обеспечения веб-сервера.
Центральный блок управления: nginx.conf
В отличие, например, от Apache, NGINX работает на основе событий. Отдельные запросы классифицируются не как новый рабочий процесс, для которого должны быть загружены все модули, а как событие. Эти события разбиваются на существующие рабочие процессы, которые обслуживаются родительским основным процессом. Сколько в итоге рабочих процессов и как распределяются запросы к серверу (т.е. события) определяется в конфигурационном файле nginx.conf. По умолчанию их можно найти в каталогах /usr/local/nginx/conf, /etc/nginx или /usr/local/etc/nginx.
Управляйте процессами и внедряйте новые конфигурации
NGINX запускается автоматически после установки, которую вы также можете запустить с помощью следующей команды:
Если программное обеспечение веб-сервера работает, управляйте им, обращаясь к процессам (в первую очередь к основному процессу) с параметром -s и определенным сигналом. Синтаксис соответствующих команд относительно не впечатляющий:
Для «сигнала» у вас есть следующие четыре варианта, среди прочего:
- stop : NGINX будет немедленно остановлен.
- quit : NGINX завершит работу после того, как будут получены ответы на все активные запросы.
- reload : файл конфигурации перезагружается.
- reopen : файлы журнала перезапускаются.
Опция перезагрузки, которая перезагружает файл конфигурации, является хорошим способом применить к нему изменения без необходимости выходить и перезапускать программное обеспечение веб-сервера. В любом случае вам предстоит определиться с вариантом — полный перезапуск сервера или простая перезагрузка NGINX — чтобы изменения вступили в силу. Если вы выбрали последнюю, более элегантную версию и выполнили приведенную ниже команду, основной процесс получит указание применить изменения в файле nginx.conf :
Для этого сначала проверяется правильность синтаксиса. Если обратная связь положительная, основной процесс запускает новые рабочие процессы с новыми настройками и одновременно инициирует остановку старых процессов. Если проверка синтаксиса не пройдена, сохраняется старый статус конфигурации. Все активные рабочие процессы завершаются, как только все активные запросы обработаны.
Кстати, вы также можете нацеливаться на процессы NGINX с помощью таких инструментов, как kill. Все, что вам нужно, — это соответствующий идентификатор процесса, который вы можете найти в файле nginx.pid в каталоге /usr/local/nginx/logs или, альтернативно, в каталоге /var/run. Например, если основной процесс имеет идентификатор 1628, его можно завершить в щадящем режиме с помощью kill и сигнала выхода:
Вы также можете использовать утилиту ps для просмотра списка всех запущенных процессов NGINX:
Как регулировать доставку статического контента
Весьма вероятно, что вы используете свой веб-сервер для доставки файлов, таких как изображения, видео или статический HTML-контент. Из соображений эффективности рекомендуется выбирать разные локальные каталоги для разных типов контента. Начните с создания каталога примера /data/html, поместите туда образец HTML-документа index.html и создайте папку /data/images с несколькими образцами изображений.
На следующем шаге необходимо ввести два каталога в файл конфигурации, указав оба в директиве блока сервера, которая, в свою очередь, является поддирективой директивы блока http. По умолчанию здесь уже записаны различные инструкции, которые вы изначально можете отключить (выключить). Затем просто создайте отдельный оператор блока сервера:
http { server { } }
Два каталога, в которых находятся изображения и HTML-документы, теперь должны быть указаны в этом блоке сервера. Соответствующий результат выглядит так:
server { location / { root /data/html; } location /bilder/ { root /data; } }
Эта конфигурация является настройкой по умолчанию для сервера, прослушивающего порт 80 и доступного через localhost. Все запросы, URI которых начинаются с /images/, теперь будут запрашивать файлы из каталога /data/images. Если соответствующий файл там не существует, появится сообщение об ошибке. Все события NGINX, URI которых не начинаются с /images/, перенаправляются в каталог /data/html.
Не забудьте после этого перезагрузить или перезапустить NGINX, чтобы изменения вступили в силу.
Настройка простого прокси-сервера NGINX
NGINX очень часто используется для работы прокси-сервера, чтобы получать входящие запросы вместо реального сервера, фильтровать и пересылать их по различным критериям и доставлять соответствующий ответ клиентам. Кэш-прокси, которые напрямую доставляют локально хранящийся статический контент и перенаправляют все дальнейшие запросы на сервер, особенно популярны. Прокси-серверы брандмауэра, которые отфильтровывают небезопасные или нежелательные соединения, также очень распространены. В следующем примере речь идет о прокси-сервере с первым именем, который должен воспроизводить запрошенные изображения из локального каталога и перенаправлять все дальнейшие запросы на веб-сервер.
На первом этапе вы определяете основной сервер в nginx.conf :
server { listen 8080; root /data/up1; location / { } }
В отличие от предыдущего примера, здесь вы используете директиву listen, так как порт 8080 будет использоваться для входящих запросов вместо стандартного порта. Также создайте целевой каталог /data/up1 и поместите туда страницу index.html.
Во-вторых, прокси-сервер и его функция доставки содержимого изображения определяются с помощью директивы proxy-pass, включая сведения об основном сервере — протоколе ( http ), имени ( localhost ) и порте ( 8080 ):
server { location / { proxy_pass http://localhost:8080; } location ~ \.(gif|jpg|png) $ { root /data/bilder; } }
Второй блок местоположения указывает прокси-серверу отвечать на все запросы, URI которых заканчиваются характерными для изображений суффиксами.gif,.jpg и.png, извлекая соответствующий контент из локального каталога /data/images. Все остальные запросы перенаправляются на главный сервер. Как и в случае с настройками ранее, сохраните свой прокси изображения с сигналом перезагрузки в основной процесс или с перезапуском NGINX. Дополнительные возможные директивы для более сложных настроек прокси см. в официальном онлайн-руководстве по NGINX.








