Files
admin/.wiki/entities/ruvds-iis-host.md
vitya 2811b5a180 fix(iis-migration): maljarka.tandemmebel.ru 502-on-HTTPS resolved
Root cause (NOT a migration defect): MoreThenCms tenant `maljarka`
had `dbo.Sites.SettingsData = NULL` (no `httpSecure` block) -> on a
real HTTPS request SnollaMiddleware throws KeyNotFoundException ->
502. HTTP served 200 fine. DNS/TLS/IIS binding all correct.

Fix applied to shared MSSQL (mssql.kzntsv.site): UPDATE Sites set
SettingsData with httpSecure{enableHttps:true,...} + recycle snolla
pool. Verified 443->200 server-local and external via 80.64.31.36;
kupimknigi untouched. Audit: maljarka was the only NULL-settings
site with a :443 binding (of 25); rimiz degraded for another reason.

- new concept: morethencms-null-settingsdata-https-502
- entities/ruvds-iis-host: maljarka moved from Degraded -> fixed
- index.md + log.md + STATUS.md + NEXT_SESSION.md updated

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 15:15:12 +03:00

84 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: RUVDS IIS Host (Windows Server 2025 Core) — 80.64.31.36
type: entity
tags: [hardware, vds, ruvds, windows, iis, cms, snolla, kupimknigi]
sources: [../sources/iis-migration-to-ruvds-2026-05-23.md, ../sources/ruvds-backup-daily-kreknin-2026-05-24.md]
updated: 2026-05-24
---
# RUVDS IIS Host
Облачный Windows-VDS у [RUVDS](https://ruvds.com), DC Королёв. Куплен 2026-05-23 как destination для миграции IIS-хостинга с [[windows-recovery-host]] — closing SPOF домашней машины для prod CMS сайтов (snolla CMS multi-tenant). Это **отдельный VDS** от [[vds-kzntsv]] (Rusonyx Linux, инфра-стек): RUVDS = только IIS catch-all для CMS hostnames, Rusonyx VDS = gitea/verdaccio/registry/DB park.
## Hardware / tariff
- **Vendor:** RUVDS (https://ruvds.com)
- **Tariff:** Windows Server 2025 Core, 2 GB RAM, 30 GB HDD, 1 IPv4 (DC Королёв)
- **OS:** Windows Server 2025 Core (GUI-less, RDP-only management)
- **IPv4:** `80.64.31.36`
- **Activated:** 2026-05-23
## Доступ
- **RDP:** `mstsc /admin``80.64.31.36:3389` (открыт из коробки)
- **SSH:** `ssh -i <key> Administrator@80.64.31.36` (OpenSSH.Server enabled; FW 22 был scoped к source IP на время migration, после cutover — cleanup pending)
- **Креды:** `pass show ruvds-iis/full-env` (canonical secret store; раньше лежали plaintext в `.secrets/ruvds-iis.env` — вынесены ретроспективно, см. [[../sources/iis-migration-to-ruvds-2026-05-23]] Decisions log 2026-05-23 09:37)
## Установленный стек
- **IIS 10** (`Web-Server` + sub-features + management tools)
- **.NET Framework 4.8** (verified ≥ 528040)
- **URL Rewrite Module 2.1** (msiexec offline)
- **OpenSSH.Server** (Windows capability; sshd running; FW 22 source-scoped)
- **rclone v1.74.2** (`C:\Program Files\rclone\rclone.exe`) — backup pipeline
- **Defender FW:** inbound 80/443 (Any), 22 (source-IP), 3389 (Any); 445 закрыт (SMB transfer-метод deprecated, см. [[../concepts/windows-server-2025-core-bootstrap]])
## Что хостит
| Site | physicalPath | Bindings | Notes |
|---|---|---|---|
| `snolla` (AppPool `snolla`, .NET v4.0 Integrated, ApplicationPoolIdentity) | `C:\sites\snolla\` (8.66 GB / 44725 files, copied 2026-05-23 via SSH/scp) | `*:80:` catch-all HTTP + 25× `*:443:<hostname>` HTTPS SNI | catch-all для всех CMS hostnames через multi-tenant routing в самом CMS |
**25 HTTPS hostnames bound via SNI** (LE certs imported from traefik `acme.json`, valid до 2026-07-22, R13):
-`emspb.ru` / `www.emspb.ru` — DNS flipped 2026-05-24 ~12:00
-`kupimknigi.spb.ru` — DNS flipped 2026-05-24 ~00:00 (pilot)
- ⏳ 22 more in queue (`pilorama98.ru`/www, `labtools.ru`/www, `labtools.pro`/www, 12× `*.snolla.com`, `rimiz.ru`/www, `maljarka.tandemmebel.ru`, etc.) — pending DNS TTL drop в reg.ru (TTL=86400 пока)
-`tandemmebel.ru` / `www.tandemmebel.ru` — scope-narrowed 2026-05-24, остаются на windows-IIS на неопределённый срок
**Degraded (CMS-side, не migration defect):** `rimiz.ru`/www, `rimiz.snolla.com` — возвращают 502/404 (pre-existing dead-routes от [[../sources/iis-host-migration-2026-05-19]] cleanup; на source IIS:8089 тоже не работают).
-`maljarka.tandemmebel.ru`**пофикшен 2026-06-08**: 502-на-HTTPS был из-за `Sites.SettingsData=NULL` (нет блока `httpSecure`) → `KeyNotFoundException` в MoreThenCms. Корень + fix: [[../concepts/morethencms-null-settingsdata-https-502]]. rimiz — **другая** причина (его `SettingsData` заполнен).
## Ключевые папки
- `C:\sites\snolla\` — IIS site content (8.66 GB)
- `C:\Windows\System32\inetsrv\config\applicationHost.config` — IIS config
- `C:\ProgramData\backup\` — backup pipeline (rclone.conf, kreknin-key, run.ps1, ntfy-token.txt) — ACL: SYSTEM + Administrators only
- `C:\ProgramData\ssh\administrators_authorized_keys` — temp pubkey для migration scp; **cleanup pending** post full cutover
- `scripts/iis-migration-to-ruvds/01-ruvds-bootstrap.ps1` (в admin repo) — idempotent bootstrap скрипт
## Backup
Daily 04:30 MSK → [[kreknin-synology]] via rclone+SFTP. Снимаются: `C:\sites\snolla\`, `applicationHost.config`, `Backup-WebConfiguration` snapshot, exported PFX certs, `C:\ProgramData\ssh\`. Retention 7 daily. ntfy `vds-backup` topic (общий с VDS backup). Smoke run #1 (2026-05-24 11:46:51) — green. См. [[../sources/ruvds-backup-daily-kreknin-2026-05-24]].
## Известные риски / SPOF
- **Image-pipeline SPOF:** RUVDS IIS вызывает `imgproxy.kzntsv.site` который **всё ещё** на [[windows-recovery-host]] — если домашняя машина гаснет, картинки rendering падает (HTML отдаётся OK с RUVDS). Verified post-migration `Test-NetConnection imgproxy.kzntsv.site -Port 443` = OK. Не closing полный SPOF — defer (Option B local nginx-relay / Option D decompile DLL, см. [[../concepts/iis-cutover-to-vds-services]]).
- **2 GB RAM tight:** w3wp ~330 MB cold start. Monitor under prod load — возможно потребуется `RecyclingPeriodicRestartMemory 200MB` per pool.
- **LE renewal pipeline отсутствует:** certs истекают 2026-07-22 (~60 дней window). Pending — `win-acme` standalone с HTTP-01 после full DNS swap (см. [[../sources/iis-migration-to-ruvds-2026-05-23]] Open questions).
- **Home-network HTTP middlebox** (DPI/transparent proxy в OpenWRT/ISP) — mangles Host header для direct external HTTP smoke testing. Real end-users из других сетей не affected. См. [[../concepts/windows-server-2025-core-bootstrap]] Update 2026-05-24.
## Vendor onboarding
В отличие от [[../concepts/rusonyx-vps-onboarding-quirks]] (VNC console, dpkg prompts) — RUVDS Windows из коробки RDP-ready, VPN/VNC quirks не зафиксировано. Bootstrap-recipe в [[../concepts/windows-server-2025-core-bootstrap]].
## Cross-refs
- Source-host (где IIS был раньше): [[windows-recovery-host]]
- VDS со shared DBs / MSSQL backend для IIS: [[vds-kzntsv]]
- Backup target: [[kreknin-synology]]
- Migration chronology: [[../sources/iis-migration-to-ruvds-2026-05-23]]
- Backup chronology: [[../sources/ruvds-backup-daily-kreknin-2026-05-24]]
- Bootstrap recipe: [[../concepts/windows-server-2025-core-bootstrap]]
- Cert import recipe: [[../concepts/traefik-acme-json-to-iis-cert-import]]
- Driver / SPOF rationale: [[../concepts/future-resilient-architecture-goals]]