cd0cc50a19
Hosts that share one wildcard cert (e.g. hassio.718it.biz and metrics.718it.biz under *.718it.biz) resolve to the same IP, so browsers coalesce them onto a single HTTP/2 connection. The SSL request_domain phase resolves the connection's first host and caches it in ngx.ctx.targetInfo; the unguarded `if targetInfo then return targetInfo` then handed that first host's target to every coalesced request on the connection -- e.g. hassio.718it.biz served from metrics' 192.168.1.8:8088. Confirmed via debug logging: for GET requests to hassio.718it.biz on a coalesced connection, ngx.ctx already held metrics' IP and the function short-circuited to it. Guard the reuse by host: only return the cached target when ngx.ctx.targetInfo_domain matches the requested domain, and record that domain whenever a target is resolved. A coalesced request for a different host now re-resolves against its actual Host header. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>