mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-30 22:34:15 -05:00
a58f240d3e
Guh, this is complicated. Fixes #4640 This also follows up on #4398 (reverting it) which made a change that technically worked, but was incorrect. It changed the condition in `hostsFromKeysNotHTTP` from `&&` to `||`, but then the function no longer did what its name said it would do, and it would return hosts even if they were marked with `http://`, if they used a non-HTTP port. That wasn't the intent of it. The test added in there was kept though, because it is a valid usecase. The actual fix is to check _earlier_ whether all the addresses explicitly have `http://`, and if so we can short circuit and skip considering the rest.
853 B
853 B
example from issue #4640
http://foo:8447, http://127.0.0.1:8447 { reverse_proxy 127.0.0.1:8080 }
{ "apps": { "http": { "servers": { "srv0": { "listen": [ ":8447" ], "routes": [ { "match": [ { "host": [ "foo", "127.0.0.1" ] } ], "handle": [ { "handler": "subroute", "routes": [ { "handle": [ { "handler": "reverse_proxy", "upstreams": [ { "dial": "127.0.0.1:8080" } ] } ] } ] } ], "terminal": true } ], "automatic_https": { "skip": [ "foo", "127.0.0.1" ] } } } } } }