Что такое NGINX
Веб-сервер и обратный прокси
NGINX — высокопроизводительный веб-сервер, обратный прокси, балансировщик нагрузки и HTTP-кэш с открытым исходным кодом. Создан Игорем Сысоевым в 2004 году, сейчас принадлежит F5 Networks.
Основные функции
- Веб-сервер — раздача статического контента
- Обратный прокси — проксирование запросов к backend-серверам
- Балансировка нагрузки — распределение трафика между серверами
- SSL/TLS терминация — обработка HTTPS-соединений
- HTTP-кэширование — кэширование ответов upstream-серверов
Преимущества
- Асинхронная event-driven архитектура
- Низкое потребление памяти
- Высокая производительность (10K+ соединений)
- Простая конфигурация
- Модульная архитектура
Типичные сценарии
- Раздача статических файлов (HTML, CSS, JS, изображения)
- Reverse proxy для Node.js, Python, PHP, Java
- API Gateway
- Балансировка между Docker-контейнерами
- SSL offloading для микросервисов
Базовая конфигурация
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
location /static/ {
root /var/www;
expires 30d;
}
}
NGINX vs Apache
| Параметр | NGINX | Apache | |----------|-------|--------| | Архитектура | Event-driven | Process/Thread | | Статика | Быстрее | Медленнее | | .htaccess | Нет | Да | | Конфигурация | Централизованная | Распределённая |
Популярные модули
- ngx_http_gzip_module — сжатие ответов
- ngx_http_ssl_module — HTTPS
- ngx_http_proxy_module — проксирование
- ngx_http_upstream_module — балансировка
- ngx_http_rewrite_module — перезапись URL