$ cat post.md
Мои ошибки в Nginx-конфигах: что выглядит безобидно, а потом бьёт по продакшену
Несколько классов мелких конфигурационных ошибок, которые не всегда заметны сразу, но почти всегда всплывают в самый неудобный момент.
С Nginx легко попасть в ловушку “ну ведь работает”. Конфиг принят, сервис отвечает, страница открывается, значит всё хорошо. Но именно такие настройки потом и превращаются в источник странных проблем: циклические редиректы, неверный Host, неожиданный кэш, неправильные таймауты, потерянные заголовки или сервис, который работает только в идеальном сценарии.
Моя самая частая ошибка была не в синтаксисе, а в самоуверенности. Я слишком быстро считал конфиг законченным, если он проходил базовую проверку. А потом выяснялось, что реальная жизнь сложнее: клиент идёт через proxy, где-то меняется схема, приложение ждёт один набор заголовков, а получает другой.
Сейчас я воспринимаю Nginx-конфиг как часть кода, а не как “раз и навсегда написанный текст”. Его нужно читать, проверять и держать простым настолько, насколько это возможно.
Что теперь проверяю отдельно
- Редиректы между
httpиhttps. - Поведение
HostиX-Forwarded-*заголовков. - Таймауты для медленных upstream-сервисов.
- Кэширование статических и динамических ответов.