Определение простыми словами
Nginx («энджин-икс») — программа, которая принимает HTTP-запросы от браузеров и решает, что с ними делать: отдать статический файл с диска, проксировать на PHP/Node.js/Python, балансировать между серверами или вернуть страницу из кэша.
Главное отличие от старых веб-серверов вроде Apache — асинхронная архитектура. Один воркер на одном ядре CPU держит до 10 000 одновременных соединений, потребляя 50–100 МБ памяти. Поэтому Nginx стоит перед WordPress, Bitrix, нагруженными API.
Сравнение с альтернативами
| Параметр | Nginx | Apache | Caddy |
|---|---|---|---|
| Модель | Event-driven (async) | Process-per-request | Event-driven |
| Расход памяти | 2–10 МБ на воркер | 10–50 МБ на процесс | 5–15 МБ |
| SSL «из коробки» | Ручная настройка | Ручная настройка | Автоматический Let’s Encrypt |
| .htaccess | Нет | Да | Нет |
| Применение | Reverse proxy, статика, SPA | Старый shared-хостинг | Простые сайты, dev |
Кейсы использования
- Reverse proxy перед PHP-FPM — стандартная связка для WordPress и Bitrix.
- Раздача статики SPA — React/Vue билдится в html+js, Nginx отдаёт его с gzip и кэшем.
- SSL-терминатор — расшифровка HTTPS на Nginx, бэкенд работает по HTTP внутри.
- Балансировка нагрузки — round-robin или least_conn между несколькими бэкендами.
- Когда Nginx НЕ нужен: для одного небольшого сайта на shared-хостинге пользователь к Nginx даже не прикасается — там уже всё настроено.
Технические детали
Минимальный конфиг для статического сайта или проксирования:
server {
listen 443 ssl http2;
server_name example.com;
root /var/www/example.com;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
include fastcgi_params;
}
}
# Проверка конфига и перезапуск
nginx -t && systemctl reload nginx
Поддерживает HTTP/2 с 2015 года, HTTP/3 (QUIC) с версии 1.25. Стандартный лог-формат разбирается GoAccess, Awstats и любым ELK. Для продакшена включают gzip, openssl ciphers ECDHE+AES256, и hsts. Часто стоит на VPS с 1 ГБ RAM и держит 1000+ rps.
🔥 Где это применяется
Частые вопросы
Nginx или Apache — что лучше?
Для нового проекта почти всегда Nginx: меньше памяти, выше пропускная способность, проще конфиг. Apache держат ради совместимости с .htaccess на старых shared-хостингах.
Можно ли запускать PHP без Apache, только на Nginx?
Да. Nginx работает с PHP через FastCGI и сокет PHP-FPM. Это стандартная схема для всех современных хостингов.
Сколько RPS держит Nginx на одном vCPU?
Для статики — 10 000–30 000 rps на ядро. Для проксирования с PHP — упирается в скорость бэкенда, обычно 100–500 rps на ядро.
Чем плох Nginx Plus и нужна ли коммерческая версия?
Nginx Plus добавляет dynamic config, расширенный мониторинг и поддержку. 95% задач закрывает бесплатный open source — Plus берут крупные корпорации.