Archive

Posts Tagged ‘оптимизация nginx’

Тюнинг nginx: заставляем веб-сервер работать быстрее

March 28th, 2012 No comments

Сегодня речь пойдет о небольшой оптимизации веб-сервера nginx. Задача – уменьшить время загрузки веб-странички у клиентов. Решение – небольшой тюнинг конфигов nginx.

Разбираем конфиг nginx. По умолчанию находится в /usr/local/nginx/conf/nginx.conf  или в /etc/nginx/nginx.conf 🙂 В моем случае это первый вариант.

Редактируем:

# nano /usr/local/nginx/conf/nginx.conf

Видим конфиг:

# Пользователь, от которого работает nginx
user www-data www-data;
# Кол-во процессов – ставится значение, равное кол-ву ядер в системе
worker_processes 4;

# Пишем логи
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;

# Кол-во соединений
events {
worker_connections 2048;
}

http {
# Подключаем mime
include mime.types;
default_type application/octet-stream;

# Запись Access-логов. По желанию. Можно добавлять в вирт. хосты
#access_log logs/access.log main;

# Лучше включить – значительно повышает скорость отдачи контента.
sendfile on;

# Каждому свое. Для блога на wordpress хорошо подходит параметр, равный 15.
keepalive_timeout 15;

# Если мы используем проксирование, то параметры удобнее вывести в отдельный файл:
include /etc/nginx/proxy.conf;

# Выключаем версию сервера
server_tokens off;

# Подключаем файл с виртуальными хостами
include /etc/nginx/sites-enabled/*;

# Параметры сжатия gzip
gzip on;
gzip_buffers 4 8k;
gzip_comp_level 7;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

# Включаем кеширование заголовков
expires max;

# Позволяет передавать файл в полных пакетах
tcp_nopush on;
# Разрешает/запрещает tcp_nodelay при переходе в состояние keep_alive
tcp_nodelay on;
}

Пока всё. Отредактируем proxy.conf:

# nano /etc/nginx/proxy.conf

# Переадресация прокси
proxy_redirect off;
# Передаем через прокси внешний IP клиента
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Остальные параметры proxy
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;