Настройка конфигурационного файла Nginx
Главный конфигурационный файл Nginx, находится по адресу /etc/nginx/nginx.conf. Его полное содержание должно выглядеть примерно следующим образом:
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
##
# nginx-naxsi config
##
# Uncomment it if you installed nginx-naxsi
##
#include /etc/nginx/naxsi_core.rules;
##
# nginx-passenger config
##
# Uncomment it if you installed nginx-passenger
##
#passenger_root /usr;
#passenger_ruby /usr/bin/ruby;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
Основные настройки
Для того, чтобы грамотно настроить Nginx, важно понимать функции основных директив. По большей части значения настроек подобраны оптимально или установлены на автоконфигурацию, но ручное изменение некоторых директив может привести к заметному улучшению скорости и качества работы сайта.
worker_processesотвечает за количество рабочих процессов. В новых версиях желательно установить для неё значениеautoдля автоматического определения оптимального количестваworker_connectionsустанавливает максимальное количество одновременно возможных соединений. Их число можно приблизительно рассчитать по формуле 1 / время выполнения задачи, cек. Как правило, стандартное значение 1024 является оптимальным и редактируется уже по результатам анализа нагрузки на серверmulti_acceptпри включении рабочий процесс за один раз будет принимать сразу все новые соединенияsendfileвключает метод отправки данных sendfile, более эффективный чем стандартный
Настройки кеширования
Данные параметры могут оказывать существенное влияние на скорость работы веб-приложений. При правильно настроенном кешировании файлов можно добиться максимального быстродействия веб-сервера, расходуя приемлимое количество ресурсов.
open_file_cacheотвечает за максимальное количество файлов, которые могут хранится в кеше (при переполнении кеша удаляются минимально востребованные элементы) и задаёт временной промежуток, по истечение которого файл удаляется если к нему не было обращений, по умолчанию 60 секундopen_file_cache_validрегулирует период проверки информации о файле в кеше — оптимально стоит устанавливать несколько большее значение, чем в параметреinactiveдирективыopen_file_cache max, чтобы после каждой проверки гарантированно удалялись все неиспользуемые файлыopen_file_cache_min_usesопределяет количество обращений к файлу, необходимое для того, чтобы файл был помещён в кеш или не был из него удалёнopen_file_cache_errorsзапрещает или разрешает кеширование ошибок поиска файлов
Сжатие
Ещё один немаловажный момент в настройке скорости работы веб-сервера- это сжатие Gzip. Эта опция полезна для экономии трафика и ускорения загрузки веб-страниц у пользователей с низкой скоростью интернет-соединения. Но следует обратить внимание, что процедура сжатия сама по себе вносит дополнительную нагрузку на ЦПУ и при сверхнагрузках на сервер может вызвать обратный эффект — количество обрабатываемых запросов уменьшится из-за нехватки вычислительных мощностей.
Для того, чтобы активировать сжатие со стандартными параметрами, необходимо раскомментировать следующие строки ниже. В этой конфигурации Nginx будет стандартно сжимать все файлы, тип которых указан в gzip_types.
gzip on;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;