Содержание

Nginx оптимизация и использование

Домашняя станица nginx с русскоязычной документацией. nginx (engine x; по-русски произносится как энджин-экс) можно использовать как HTTP -сервер, почтовый прокси-сервер и HTTP accelerator (reverse proxy). Применение nginx целесообразно прежде всего для статических веб-сайтов и как прокси-сервера перед динамическими сайтами. Nginx, как и Lighttpd, часто используют для отдачи статического содержимого, генерируемого «тяжёлым» веб-приложением, работающим под управлением другого веб-сервера. Архитектурно Nginx — это асинхронный сервер, который использует один главный процесс для приема соединений и несколько рабочих процессов для их обработки.

nginx кэширует только ответы на запросы get.

Читайте также:

Команды NGINX:

$ nginx -s reload

Что такое default_server в Nginx

Для того чтобы Nginx обрабатывал клиентский запросы с неизвестным доменом или пустым полем "Host" заголовка запроса. В каких случаях это может произойти, например когда

В блоке сервера (server), в директиву listen добавляется флаг default_server, Nginx объявляет этот сервер сервером по умолчанию. После этого Nginx будет использовать сервер по умолчанию для обработки запросов, когда их заголовок HTTP-хоста не будет соответствовать каким-либо другим блокам сервера. Флаг default_server может быть добавлен только один раз в блок сервера с любой комбинацией IP:порт, указанной в качестве параметра директивы listen. Однако флаг default_server можно использовать несколько раз для разных комбинаций IP:порт.

server {
 
listen 80 default_server;
#...
}

Если запросы без поля "Host" в заголовке не должны обрабатываться, можно определить сервер, который будет их отклонять:

server {
    listen      80;
    server_name "";
    return      444;
}

Здесь в качестве имени сервера указана пустая строка, которая соответствует запросам без поля “Host” в заголовке, и возвращается специальный для nginx код 444, который закрывает соединение.

Модули и директивы

Проверить какие модули подгружает Nginx:

2>&1 nginx -V | tr -- - '\n' | grep _module

Директивы:

Модули:

Настройки размера буфера в Nginx и поиск медленных запросов

Параметры php-fpm:

Стандартные параметры PM (process manager-а) pm = dynamic. Данные параметр указывает, что кол-во pm-процессов будет динамически создаваться в зависимости от настроек, представленных ниже.

pm.max_children = 5
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 200

Для поиска медленных запросов следует использовать параметр для php-fpm конфига:

slowlog /path/to/php-fpm-slow.log