feat(iis-on-host-migration): done — attempt 2 close-out, 8/8 sites green @ 36h soak

Soak passed: traefik Up 38h, w3wp 8.8h (scheduled IIS pool recycle ~29h, not crash).
HTTPS smoke 11 hostnames через full traefik chain — 8/8 наших sites вернули
Microsoft-IIS/10.0. 3 hostname'а оказались off-infra (DNS снят / parked / external
nginx) — не regression миграции, заведена follow-up  iis-traefik-dead-routes-cleanup.

Wiki: Phase 11 close-out section в sources/iis-host-migration-2026-05-19, log
ingest+decision entries.

VM snolla-recovery ready для savestate (waits user go).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-21 08:09:01 +03:00
parent 61826cb1ef
commit 349c4a6d53
2 changed files with 61 additions and 2 deletions

View File

@@ -0,0 +1,43 @@
# iis-traefik-dead-routes-cleanup
## Goal
Убрать из traefik (и host IIS bindings, если нужно) routes для 3 hostname'ов которые больше **не указывают на нашу инфраструктуру** — выяснилось в ходе [[iis-on-host-migration]] Phase 11 close-out smoke (2026-05-21):
| Host | Where it points now | Original task expectation |
|---|---|---|
| `maljarka.ru` | DNS снят (нет A record) | host IIS `snolla` |
| `sestech.ru` | Парковка domainparking.ru (TLS subj `CN=*.domainparking.ru`, cert от 2025-11-04) | host IIS `snolla` |
| `ics-artmaterials.com` | A→`87.236.16.28`, отвечает `nginx-reuseport/1.21.1` (внешний WP-хостинг) | host IIS `snolla` |
## Key files
- `C:\Users\vitya\projects\docker\diskstation\traefik\data\custom\` — поискать yml где упоминаются эти 3 host'а. Скорее всего отдельный yml на каждый, либо combined.
- Possibly host IIS site `snolla` bindings (через `appcmd list site snolla` или `Get-WebBinding`) — если bind на эти hostname'ы есть, тоже убрать.
## Open questions
- [ ] Удалять yml совсем или `.disabled` rename (как сделано с `stostayer.yml.disabled`)? Disabled безопаснее на случай если домен вернётся.
- [ ] Нужно ли уведомить владельцев доменов (если внутренние SaaS-клиенты) что routes снимаются?
- [ ] `rimiz.ru` (404 CMS-side, не off-infra) — НЕ сюда. Это open issue в [[recovery-architecture-snapshot]].
## Implementation sketch
```powershell
# 1. Найти yml-ы, упоминающие dead hosts
Select-String -Path "C:\Users\vitya\projects\docker\diskstation\traefik\data\custom\*.yml" -Pattern "maljarka|sestech|ics-artmaterials"
# 2. Backup + rename .disabled (или удалить)
# (зависит от того что найдено в шаге 1)
# 3. docker restart traefik
# 4. Smoke: tail traefik logs на 30s — никаких errors для удалённых routes
docker logs --since 30s traefik 2>&1 | Select-String -Pattern "maljarka|sestech|ics-artmaterials"
```
## Notes
- Low priority — dead routes генерируют noise в traefik logs (LE cert renewal попытки и т.п.), но не блокируют live trafic.
- Атомарный revert: rename `.disabled → .yml` обратно, `docker restart traefik`.
- Если у `sestech.ru` истёк parking cert, LE может пытаться renew наш cert тоже (если в acme.json остались записи); это благодарность для отдельной чистки `acme.json`.