Настройка конфигурационного файла 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;