git-subtree-dir: .tasks-imported git-subtree-mainline:c40418239egit-subtree-split:cbdc2b39aa
3.1 KiB
cms-maljarka-https-mode-bug-fix
Goal
Починить maljarka.tandemmebel.ru чтобы он отвечал 200 (не 502) через публичный HTTPS chain. Root cause diagnosed в traefik-maljarka-502-bug: IIS+CMS падает на этом hostname когда HTTPS=on/SERVER_PORT=443 выставлены URL Rewrite rule'ом. Full mechanism — wiki concept cms-maljarka-https-mode-crash.
Key files
C:\sites\snolla\Web.config— URL Rewrite rule "ForwardedProto-HTTPS" из cms-server-port-leak-fixC:\inetpub\logs\LogFiles\W3SVC*\— IIS logs sitesnolla(нужно найти sub-status 502.x для конкретного request)- CMS DB — table с per-host config (per recovery-architecture-snapshot, CMS использует MSSQL контейнер)
- CMS source:
MoreThenCms.Admin\Mis\Web\Mvc\UrlHelpers\UrlHelpers.cs:14-37(Url.SiteRoot()) — паттерн из cms-server-port-leak-fix; возможно тут helper падает specifically на этом host
Bisect-trace evidence
direct backend Host: maljarka.tandemmebel.ru → 200 OK (43KB)
direct backend Host: maljarka.tandemmebel.ru + X-Forwarded-For → 200 OK
direct backend Host: maljarka.tandemmebel.ru + X-Forwarded-Proto:https → 502 ← триггер
direct backend Host: tandemmebel.ru + X-Forwarded-Proto:https → 301 (correct)
Single variable: X-Forwarded-Proto: https для этого specific hostname.
Next action
-
IIS logs:
Get-Content 'C:\inetpub\logs\LogFiles\W3SVC1\u_extend1*.log' -Tail 500 | Select-String 'maljarka' | Select-Object -Last 20Найти sub-status (502.3 = bad gateway, 502.4 = no server, 502.5 = ARR config, etc.).
-
Event Viewer:
Get-EventLog -LogName Application -Source 'ASP.NET*' -Newest 50 | Where-Object Message -Match 'maljarka' | Format-ListStack trace покажет точное место crash.
-
CMS DB inspection — есть ли запись для
maljarka.tandemmebel.ruв table с per-host URLs, и поле HttpsUrl/BaseUrl не NULL ли там. -
Quick workaround если real customer traffic — apply Workaround B из cms-maljarka-https-mode-crash (negate condition в URL Rewrite rule for this Host). Backup Web.config first.
Open questions
- Какой priority? Зависит от того real customer traffic на
maljarka.tandemmebel.ruили это internal/test subdomain. - Если CMS bug — fix CMS code или DB hot-fix?
- DLL patch для null-guard (от cms-admin-assets-root-folders-seed) — может тот же класс bugов; может в одном вылазе чинить вместе.
Notes
- 3 workarounds + 5 investigation places задокументированы в cms-maljarka-https-mode-crash wiki concept.
- Не trivially связан с cms-server-port-leak-fix — там URL Rewrite rule добавлен правильно, но CMS код в этом конкретном случае ломается. Регрессия CMS, не fix'а.