docs(.wiki): iis-migration rollback + post-mortem + xml-escape concept
Phase 9 — rollback миграции на host-IIS из-за Docker port-loop (host.docker.internal:80 от traefik container резолвится обратно в сам traefik через NAT, https.yml http-catchall middleware отдавал 301 -> TOO_MANY_REDIRECTS). Prod снова через VM. - iis-migration-2026-05-19-postmortem: 10 ошибок миграции + recipe для следующей попытки (backend port НЕ :80, smoke с MaximumRedirection 0, тест из НЕ-LAN, parallel VM x N часов, atomic revert plan) - webconfig-password-xml-escape: новая gotcha — & в conn-string пароле требует & в Web.config (XML reserved char) - iis-host-migration-2026-05-19: Phase 9 rollback chronology + что осталось на хосте inert - snolla-recovery-vm: статус -> active prod (обратно) - windows-recovery-host: host IIS sites -> inert artifacts - recovery-architecture-snapshot: chain снова через VM, traefik backends восстановлены из .bak-phase3 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -34,34 +34,45 @@ updated: 2026-05-19
|
||||
- Соединение с интернетом через **WiFi** (Broadcom 802.11ac, 288 Mbps)
|
||||
- За **VLESS-клиентом v2rayN** (роутер default-route шёл через VPN, пришлось настроить **Bypass LAN** правило с `geoip:private` → direct, иначе входящие 80/443 терялись через asymmetric routing)
|
||||
|
||||
## Что хостит сейчас (после recovery + [[iis-host-migration-2026-05-19]])
|
||||
## Что хостит сейчас (после revert 2026-05-19 — см. [[iis-migration-2026-05-19-postmortem]])
|
||||
|
||||
| Что | Где | Порт (host) |
|
||||
|---|---|---|
|
||||
| **VirtualBox `snolla-recovery` VM** | C:\Users\vitya\VirtualBox VMs\snolla-recovery\ | VRDE 13389, NAT-RDP 23389, NAT-SSH 8022, NAT-HTTP 18080/18180/18181/18189 |
|
||||
| **Native IIS — MoreThenCms.Web** (с 2026-05-19) | `C:\sites\MoreThenCms.Web` (AppPool `MoreThenCms.Web`, .NET v4.0 Integrated, `ApplicationPoolIdentity`) | 80 |
|
||||
| **Native IIS — stostayer** (с 2026-05-19, прод трафика пока нет) | `C:\stayer\MoreThenCms.Web` (AppPool `stostayer`) | 8090 |
|
||||
| **Native IIS — stostayer.old** (с 2026-05-19, прод трафика пока нет) | `C:\stayer\stostayer.old` (AppPool `stostayer.old`) | 8091 |
|
||||
| **traefik 2.6.6** | Docker, network `proxy` | 8000 (http), 4443 (https), 8080 (dashboard) |
|
||||
| **MSSQL 2019** | Docker, named volume `mssql_mssql_data` | 1433 |
|
||||
| **MinIO** | Docker, bind-mount `./data` | 9000 |
|
||||
| **Elasticsearch 7.10.1** | Docker, bind-mount `./data` | 9200 |
|
||||
| **imgproxy** | Docker | 8787 |
|
||||
| **imgproxy-nginx** | Docker | 8788 |
|
||||
**Active prod:**
|
||||
|
||||
`Default Web Site` остановлен (`autoStart=false`) — освободил `:80` для `MoreThenCms.Web`. URL Rewrite + ARR пока **не установлены** (Phase 5).
|
||||
| Что | Где | Порт (host) | Прим. |
|
||||
|---|---|---|---|
|
||||
| **VirtualBox `snolla-recovery` VM** | `C:\Users\vitya\VirtualBox VMs\snolla-recovery\` | **VRDE 13389, NAT-RDP 23389, NAT-SSH 8022, NAT-HTTP 18080/18180/18181/18189** | **active prod**, обслуживает 11 главных доменов + stayer'ы через traefik |
|
||||
| **traefik 2.6.6** | Docker, network `proxy` | 8000 (http), 4443 (https), 8080 (dashboard) | 11 main routes + 2 stayer routes → all на VM (`host.docker.internal:18080/18180/18181`) + 3 infra routes |
|
||||
| **MSSQL 2019** | Docker, named volume `mssql_mssql_data` | 1433 | 5 production DB |
|
||||
| **MinIO** | Docker, bind-mount `./data` | 9000 | |
|
||||
| **Elasticsearch 7.10.1** | Docker, bind-mount `./data` | 9200 | books-стек, не CMS |
|
||||
| **imgproxy** | Docker | 8787 | |
|
||||
| **imgproxy-nginx** | Docker | 8788 | |
|
||||
|
||||
**Inert (готовы для следующей попытки миграции, не на prod-пути):**
|
||||
|
||||
| Что | Где | Порт (host) | Прим. |
|
||||
|---|---|---|---|
|
||||
| **Native IIS — `snolla`** | `C:\sites\snolla` (pool `snolla`, .NET v4.0 Integrated, `ApplicationPoolIdentity`) | 80, 8088 | сайт + binding'и live, не получает трафика (traefik снова на VM) |
|
||||
| **Native IIS — `stostayer`** | `C:\sites\stostayer` (pool `stostayer`) | 8090 | conn на `www.stostayer.ru,1433` (patched), inert |
|
||||
| **Native IIS — `stostayer.old`** | `C:\sites\stostayer.old` (pool `stostayer.old`) | 8091 | conn → наш `localhost` MSSQL (patched), inert |
|
||||
| **`C:\sites\snolla-identity-manager\`** | папка без IIS-сайта | — | deploy-артефакт, не активен |
|
||||
|
||||
`Default Web Site` всё ещё stopped (`autoStart=false`) — даже не нужен. URL Rewrite + ARR **не установлены**.
|
||||
|
||||
## Ключевые папки
|
||||
|
||||
- `C:\Users\vitya\projects\docker\diskstation\` — compose'ы и данные docker-стеков
|
||||
- `mssql/`, `minio/`, `elasticsearch/`, `imgproxy/`, `traefik/`
|
||||
- `traefik/data/custom/*.yml` — file-provider routes для всех 13 client доменов + ES/MinIO/imgproxy
|
||||
- `C:\Users\vitya\VirtualBox VMs\snolla-recovery\` — VM home (VMDK на SATA controller, 42.5 GB extract из OVA)
|
||||
- `C:\Users\vitya\VirtualBox VMs\snolla-recovery\` — VM home, **active prod** (running)
|
||||
- `C:\nas-recovery\backup\snolla\snolla.ova` — оригинал OVA (45.6 GB, для повторного импорта если что)
|
||||
- `C:\nas-recovery\vm-sites\wwwroot\`, `C:\nas-recovery\vm-sites\stayer\` — резервная копия IIS-сайтов из VM (на случай дрожи VM)
|
||||
- `C:\sites\MoreThenCms.Web\` — **активный prod CMS** на нативном IIS (зеркало `vm-sites\wwwroot\MoreThenCms.Web`, с патчем `sitePath` + connection string на `localhost`)
|
||||
- `C:\stayer\` — копии stayer-проектов на хосте (Native IIS сайты `stostayer` :8090 и `stostayer.old` :8091 готовы, но prod-трафик пока на VM)
|
||||
- `C:\Users\vitya\projects\MoreThenCms\` — git-репо с исходниками CMS (важно — у нас есть и source code)
|
||||
- `C:\nas-recovery\vm-sites\wwwroot\`, `C:\nas-recovery\vm-sites\stayer\` — резервная копия IIS-сайтов из VM (использована для миграции на хост; пока хранится как safety net)
|
||||
- `C:\sites\` — **inert**, готов для следующей попытки миграции (см. [[iis-migration-2026-05-19-postmortem]]):
|
||||
- `snolla\` — Web.config patched (sitePath + conn → localhost)
|
||||
- `stostayer\` — Web.config patched (conn → `www.stostayer.ru,1433` с XML-escape `&`)
|
||||
- `stostayer.old\` — Web.config patched (conn → localhost)
|
||||
- `snolla-identity-manager\` — deploy-артефакт, IIS-сайта нет
|
||||
- `C:\Users\vitya\projects\MoreThenCms\` — git-репо с исходниками CMS
|
||||
|
||||
## SSH-ключи на этой машине
|
||||
|
||||
|
||||
Reference in New Issue
Block a user