# конспект · шаг 1 из 1
Конспект раздела: как nginx думает
Раздел даёт систему координат: зачем nginx нужен, как он устроен внутри и по какому маршруту идёт каждый запрос.
Три уровня понимания
ЗАЧЕМ граница перед приложением: статика, медленные клиенты, TLS, балансировка
КАК мастер (права, конфиг) + воркеры (цикл событий, без привилегий)
ЧТО шесть решений по каждому запросу - от выбора server до записи в лог
Протокол под ногами
запрос: GET /catalog/42?sort=price HTTP/1.1 ← строка
Host: shop.local ← заголовки
← пустая строка: «заголовки кончились»
(тело - у GET его нет)
- В строке запроса едут только путь и параметры; имя сайта - в
Host, фрагмент после#не уходит на сервер вовсе. $request_uri- как прислали,$uri- раскодированный (по нему выбираетсяlocation),$args- параметры, они не раскодируются.- Классы кодов: 1xx промежуточный, 2xx готово, 3xx иди туда, 4xx так спросить нельзя, 5xx сломалось на сервере.
- Соединение живёт дольше запроса (
keepalive_timeout, 75 с), и где кончился ответ, говорятContent-Lengthилиchunked. - Участковые заголовки (
Connection,Upgrade,Transfer-Encodingи ещё пять) прокси не пересылает - отсюда обязательные строки в конфиге для WebSocket. - Имя заголовка с подчёркиванием nginx отбрасывает молча.
Шесть решений - главная схема курса
server → location → return/rewrite → источник → заголовки → лог
Все следующие разделы разбирают по одному участку этой цепочки. Любую поломку разбирают, проходя список сверху вниз.
Что помнить про процессы
| Факт | Следствие |
|---|---|
| воркеров ≈ по числу ядер | worker_processes auto, а не «побольше» |
| цикл событий один на воркер | медленная операция блокирует все его соединения |
| мастер держит привилегии | уязвимость обработки запроса попадает в непривилегированный процесс |
worker_processes × worker_connections |
потолок соединений; для прокси считай по два |
Команды раздела
$ команда
nginx -T # итоговый конфиг после всех include
nginx -t && systemctl reload nginx # проверить и применить
nginx -T | grep -n "server_name\|listen\|proxy_pass" # карта чужого сервера
ps aux | grep nginx # мастер и воркеры
Чек-лист: что ты должен уметь объяснить
- Что именно снимает nginx с приложения и почему это дешевле делать до него.
- Чем мастер отличается от воркера и почему воркеров не делают «побольше».
- Почему медленный код нельзя выполнять внутри воркера.
- Все шесть решений по порядку - и какое из них отвечает за конкретный симптом.
- Чем
conf.d/отличается отsites-available/sites-enabled.
Комментарии
Пока нет комментариев. Будь первым!
Оставить комментарий