Nginx — «выходные двери» большинства веб-приложений: по данным W3Techs он стоит примерно у трети всех сайтов, а среди самых нагруженных — почти у половины. Любой DevOps рано или поздно упирается в него: перед приложением, как TLS-терминатор, балансировщик, кэш и rate-limiter, а в Kubernetes — как Ingress Controller. Большинство «знают» пару директив с форумов и ломаются на слэше в proxy_pass и приоритете location. Здесь — наоборот: сначала модель (master + event-driven workers, контексты и директивы), потом каждая настройка становится очевидным следствием, а не заклинанием.
Как устроены TCP, TLS и HTTP (трек Сети с нуля и Путь HTTPS-запроса) и базовый терминал Linux (Linux-эмулятор). Большой плюс — трек Linux from kernel up: там процессы, epoll и файловые дескрипторы разобраны изнутри, а event-driven-модель Nginx — ровно их применение. Опыта с Nginx не требуется — начинаем с того, что такое веб-сервер и reverse proxy.
Структура трека
Раньше весь материал жил на одной большой странице. Теперь он разбит на 15 уроков по стандарту — с квизами, лабами и плейбуками, чтобы удобнее было читать и повторять по темам. Старая одностраничная версия сохранена и ведёт сюда же (редирект на трек). Иди по порядку: базовая часть (01–10) — от «что такое reverse proxy» до production-конфигов, профи-часть (11–15) — Kubernetes Ingress, stream/fastcgi, OpenResty/NJS, WAF/mTLS/GeoIP и troubleshooting.
Лучшая литература к треку
- Официальная документация — nginx.org/en/docs — первоисточник по каждой директиве и модулю; по ней сверяются все факты трека. Отдельно полезны ngx_http_core_module и ngx_http_proxy_module.
- «How nginx processes a request» и «Beginner’s Guide» — nginx.org/en/docs — официальное описание выбора server и location, с которого стоит начинать.
- Mozilla SSL Configuration Generator — ssl-config.mozilla.org — актуальные, поддерживаемые сообществом TLS-конфиги (протоколы, шифры, HSTS) — не пишем руками.
- ingress-nginx — kubernetes.github.io/ingress-nginx — документация самого распространённого Ingress Controller в Kubernetes (аннотации, ConfigMap, canary).
- RFC 9110/9111/9112 (HTTP Semantics/Caching/HTTP-1.1) и RFC 9113/9114 (HTTP/2, HTTP/3) — стандарты протоколов, которые Nginx реализует; к ним обращаемся за точным поведением заголовков и кэша.
Держи рядом машину с установленным Nginx (подойдёт контейнер: docker run --rm -p 8080:80 nginx). Каждый конфиг из урока проверяй руками: правка → nginx -t → nginx -s reload → curl -v. Именно связка «изменил — проверил конфиг — посмотрел ответ» превращает набор директив в понимание. В треке намеренно много «а что если сломалось» (плейбук 502, приоритет location, слэш в proxy_pass) — это то, на чём реально спотыкаются на работе.