hostprofi.ru
Подобрать хостинг
Термин·буква К

Конфиг nginx

краткое определение

Конфиг Nginx (nginx.conf) — основной файл конфигурации веб-сервера Nginx. Иерархическая структура из блоков: http, server, location. Определяет виртуальные хосты, маршрутизацию запросов, параметры SSL, кэширование и проксирование.

Конфигурационный файл Nginx (nginx.conf) расположен в /etc/nginx/nginx.conf. Основной файл подключает дополнительные конфиги через директиву include /etc/nginx/sites-enabled/* (Debian/Ubuntu) или include /etc/nginx/conf.d/*.conf (RHEL/CentOS). Синтаксис иерархический: блоки с директивами вложены друг в друга.

Структура конфигурации

user www-data;
worker_processes auto;

events {
    worker_connections 1024;
}

http {
    include       mime.types;
    gzip          on;

    server {
        listen 80;
        server_name example.com www.example.com;
        root /var/www/example;

        location / {
            try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
            fastcgi_pass unix:/run/php/php8.2-fpm.sock;
            include fastcgi_params;
        }
    }
}

Ключевые блоки и директивы

events — настройки обработки соединений. worker_connections — максимум соединений на одного worker.

http — глобальные настройки HTTP: сжатие, keepalive, буферы, типы MIME.

server — виртуальный хост. Директива listen указывает порт и опции (ssl, http2). server_name — доменные имена. Несколько server-блоков с разными server_name на одном SNI-порту обеспечивают виртуальный хостинг.

location — правило обработки URL. Матчинг: точный (=), префиксный, без регулярки (~* и ~). Директивы proxy_pass, fastcgi_pass, uwsgi_pass перенаправляют в upstream.

История

Формат конфигурационного файла Nginx задан с первого публичного релиза в 2004 году и с тех пор принципиально не менялся. Синтаксис вдохновлён форматом конфигов Postfix. В Nginx Plus 2015 года добавлен динамический апстрим через API без перезагрузки конфига.

Связь с хостингом

На VPS конфигурация Nginx создаётся вручную или через панели (ISPmanager, CyberPanel, hPanel). Типичные задачи: добавить SSL/TLS (директивы ssl_certificate, ssl_protocols, ssl_ciphers), настроить reverse proxy к Node.js или PHP-FPM, включить gzip, задать кэширующие заголовки. Проверить синтаксис конфига: nginx -t. Применить без перезапуска: nginx -s reload.

Структура конфигурации Nginx

Иерархия: http { server { location {} } }. Директивы наследуются вниз и могут быть переопределены. Включение файлов: include /etc/nginx/conf.d/*.conf. Каждый сайт — отдельный файл в conf.d или sites-enabled.

Оптимизация производительности

worker_processes auto — число CPU. worker_connections 4096. keepalive_timeout 65. gzip on; gzip_types text/plain text/css application/json application/javascript. Для статики: expires 1y; add_header Cache-Control "public".

Типичные ошибки в конфигурации

Пропущен proxy_set_header X-Forwarded-For — приложение видит IP балансировщика. proxy_buffer_size мал для больших заголовков (JWT-токены). Забыто try_files $uri $uri/ /index.php?$args для WordPress. Директива server_name _ для default server.

Другие термины