Nginx — высокопроизводительный асинхронный веб-сервер и обратный прокси-сервер, используемый для:
- Обслуживания статических файлов: Быстрая и эффективная отдача HTML, CSS, JavaScript, изображений и других статических ресурсов. Благодаря асинхронной архитектуре, он может обрабатывать большое количество одновременных подключений с низким потреблением ресурсов.
- Обратного проксирования: Передача клиентских запросов на один или несколько бэкенд-серверов (приложения, API) и возвращение ответов клиентам. Это позволяет балансировать нагрузку, повышать безопасность (скрывая внутреннюю структуру сети), выполнять SSL-терминацию.
- Балансировки нагрузки: Распределение входящих запросов между несколькими серверами для повышения доступности и масштабируемости приложения. Поддерживает различные алгоритмы балансировки (например, round robin, least connections).
- Кеширования: Кеширование статических и динамических ресурсов для снижения нагрузки на бэкенды и ускорения отклика.
- SSL/TLS-терминации: Расшифровка HTTPS-трафика перед его передачей на бэкенд, что снимает нагрузку с серверов приложений и позволяет централизованно управлять сертификатами.
- Сжатия: Сжатие данных (например, Gzip) перед отправкой клиенту для уменьшения трафика и ускорения загрузки страниц.
- Ограничения скорости запросов: Защита бэкендов от перегрузки путем ограничения количества запросов от отдельного клиента за определенный промежуток времени.
- Веб-фаервола (WAF): Базовая защита от распространенных веб-атак (например, SQL-инъекций, XSS).
nginx