Конфігурація HTTP-сервера NGINX
- Олександр Мойсеюк
- Лінукс та сервер
- Переглядів: 1096
-
Основні налаштування знаходяться в файлі
nano /etc/nginx/nginx.conf
Приводжу приклад основних опцій, необхідних для роботи, з короткими поясненнями
user www-data; # Запускатимемо nginx від користувача www-data worker_processes 8; # Рекомендується виставляти worker_processes рівним кількості ядер на процесорі * pid /run/nginx.pid; # Файл для реєстрації номерів процесів events { worker_connections 2048; # Кількість з'єднань на один воркер. Рекомендоване значення 1024, в моєму випадку цього може бути недостатньо use epoll; # Метод з'єднання. Для Linux - epoll multi_accept on; # Приймати максимально можливу кількість з'єднань } http { sendfile on; # Метод передачі даних(ефективніше ніж read+write) # Відправлення заголовків від початку до кінця в одному пакеті tcp_nopush on; tcp_nodelay on; keepalive_timeout 6000; keepalive_requests 1000; types_hash_max_size 2048; reset_timedout_connection on; server_tokens off; # Приховуємо версію Nginx з міркувань безпеки client_body_timeout 10; client_header_timeout 10; send_timeout 2; client_body_buffer_size 1K; client_header_buffer_size 1k; client_max_body_size 200m;
Щоб вам колись не закидало логи помилками, відразу піднімемо максимальну кількість відкритих файлів. Додаємо в /etc/security/limits.conf
* soft nofile 16384 * hard nofile 16384
Далі треба виконати:
ulimit -n 16384
І в в nginx.conf прописати нове значення worker_connections, рівне 16384 поділити на worker_processes, або
worker_rlimit_nofile 16384;
Перевіримо конфіг
nginx -t
і перезапустимо конфігурації
service nginx reload