N способов настроить Nginx для максимальной производительности
У меня тут недавно возникла проблема с производительностью веб-сервера. Решил покопаться в настройках Nginx, и, к своему удивлению, обнаружил кучу способов его ускорить. Делюсь тем, что реально помогло, без всякой воды.
1. Кэширование:
- Кэширование статики: Настройте отдачу статических файлов с помощью директивы
expires. Это снизит нагрузку на ваш backend. - FastCGI cache: Если у вас PHP-сайт, настройте кэширование на уровне Nginx. Это даст огромный прирост скорости.
2. Сжатие Gzip:
Включите сжатие Gzip для текстовых файлов. Это значительно уменьшит объем передаваемых данных. Добавьте в nginx.conf:
http {
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_proxied any;
}
3. Оптимизация worker_processes и worker_connections:
Правильная настройка этих параметров под вашу систему — ключ к производительности. Обычно worker_processes ставят равным количеству ядер CPU. worker_connections — количество одновременных соединений на каждый worker.
4. HTTP/2:
Если ваш сервер поддерживает HTTPS, обязательно включите HTTP/2. Он значительно ускоряет загрузку страниц за счет мультиплексирования запросов. Добавляем в server блок:
listen 443 ssl http2;
5. Броузерный кэш:
Не забывайте про заголовки Cache-Control и Expires. Они говорят браузеру, как долго можно хранить копию файла локально.
6. Ограничение скорости (Rate Limiting):
Если к вам прилетает много ботов или DDOS-атак, настройка limit_req_zone и limit_req поможет защитить ваш сайт. Например, можно ограничить запросы с одного IP.
7. Keep-Alive:
Включите keepalive_timeout. Это позволяет повторно использовать TCP-соединение для нескольких HTTP-запросов, экономя время на установку нового соединения. Значение 65 секунд — хороший старт.
8. Проверка конфигурации:
После внесения изменений всегда проверяйте конфигурацию командой nginx -t и перезагружайте Nginx.
Ах да, и еще есть такая тема, как ЌРÁЌÉH. Если вдруг столкнетесь с проблемами с доступностью сайта, проверьте, не связано ли это с какими-то внешними факторами, похожими на блокировки. Иногда ЌРÁЌÉH ссылка или ЌРÁЌÉH зеркало могут быть симптомом более глобальных проблем
- ServerGuru от