Weird issue with caddy inside a docker container

1. The problem I’m having:

I have a weird issue with the caddy docker image. When running a reverse proxy locally everything works just fine but doing the same in the docker container it ends up stuck in an infinite loop, when sending a requesst.

The same simple reverse-proxy with an nginx docker-image works just fine.

I verified that the target is reachable from inside the container by using curl.

2. Error messages and/or full log output:

2023-07-11 19:37:05 {"level":"info","ts":1689097025.33853,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
2023-07-11 19:37:05 {"level":"warn","ts":1689097025.338972,"msg":"Caddyfile input is not formatted; run the 'caddy fmt' command to fix inconsistencies","adapter":"caddyfile","file":"/etc/caddy/Caddyfile","line":2}
2023-07-11 19:37:05 {"level":"info","ts":1689097025.3393106,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//localhost:2019","//[::1]:2019","//127.0.0.1:2019"]}
2023-07-11 19:37:05 {"level":"warn","ts":1689097025.339785,"logger":"http","msg":"server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server","server_name":"srv0","http_port":80}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.339888,"logger":"http","msg":"starting server loop","address":"[::]:80","tls":false,"http3":false}
2023-07-11 19:37:05 {"level":"info","ts":1689097025.3399045,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}
2023-07-11 19:37:05 {"level":"info","ts":1689097025.3399293,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0xc00049b2d0"}
2023-07-11 19:37:05 {"level":"info","ts":1689097025.339977,"logger":"tls","msg":"cleaning storage unit","description":"FileStorage:/data/caddy"}
2023-07-11 19:37:05 {"level":"info","ts":1689097025.3400474,"logger":"tls","msg":"finished cleaning storage units"}
2023-07-11 19:37:05 {"level":"info","ts":1689097025.3400922,"msg":"autosaved config (load with --resume flag)","file":"/config/caddy/autosave.json"}
2023-07-11 19:37:05 {"level":"info","ts":1689097025.3400953,"msg":"serving initial configuration"}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.389281,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.393441,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.397054,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4004383,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4030871,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4061804,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4090323,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.411838,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4145482,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4171717,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4208033,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4238706,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4265263,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4292123,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4322014,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.434982,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4378598,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.440686,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4434662,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4459474,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4483616,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4508107,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4541004,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4570217,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}
2023-07-11 19:37:05 {"level":"debug","ts":1689097025.4595647,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"192.168.120.170:80","total_upstreams":1}

that spam won’t stop until I shut down the server.
When shutting the server down this appears:

2023-07-11 19:37:08 {"level":"info","ts":1689097028.415648,"msg":"shutting down apps, then terminating","signal":"SIGTERM"}
2023-07-11 19:37:08 {"level":"warn","ts":1689097028.415665,"msg":"exiting; byeee!! 👋","signal":"SIGTERM"}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4156895,"logger":"http","msg":"servers shutting down with eternal grace period"}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4181693,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.003162487,"request":{"remote_ip":"172.19.0.1","remote_port":"45468","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Sec-Ch-Ua-Platform":["\"Windows\""],"Cookie":[],"Sec-Fetch-Site":["none"],"Upgrade-Insecure-Requests":["1"],"Content-Length":["0"],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"X-Forwarded-For":["172.19.0.1"],"Accept-Encoding":["gzip, deflate, br"],"Sec-Fetch-Mode":["navigate"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Cache-Control":["max-age=0"],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"Sec-Fetch-Dest":["document"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"X-Forwarded-Host":["localhost:8081"],"Sec-Ch-Ua-Mobile":["?0"],"X-Forwarded-Proto":["http"],"Sec-Fetch-User":["?1"]}},"error":"EOF"}
2023-07-11 19:37:08 {"level":"error","ts":1689097028.4182446,"logger":"http.log.error","msg":"EOF","request":{"remote_ip":"172.19.0.1","remote_port":"45468","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Sec-Ch-Ua-Platform":["\"Windows\""],"X-Forwarded-Host":["localhost:8081"],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"Cookie":[],"Sec-Fetch-Dest":["document"],"Sec-Fetch-User":["?1"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"X-Forwarded-For":["172.19.0.1"],"X-Forwarded-Proto":["http"],"Accept-Encoding":["gzip, deflate, br"],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Fetch-Mode":["navigate"],"Sec-Fetch-Site":["none"],"Upgrade-Insecure-Requests":["1"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Cache-Control":["max-age=0"],"Connection":["close"],"Content-Length":["0"]}},"duration":0.003577873,"status":502,"err_id":"93xjfks5p","err_trace":"reverseproxy.statusError (reverseproxy.go:1299)"}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4188242,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.006704814,"request":{"remote_ip":"172.19.0.1","remote_port":"45464","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Upgrade-Insecure-Requests":["1"],"Content-Length":["0"],"Cache-Control":["max-age=0"],"Sec-Fetch-Site":["none"],"Sec-Fetch-Dest":["document"],"Sec-Ch-Ua-Mobile":["?0"],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"Cookie":[],"Sec-Ch-Ua-Platform":["\"Windows\""],"X-Forwarded-Host":["localhost:8081"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"Sec-Fetch-User":["?1"],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"X-Forwarded-For":["172.19.0.1"],"Accept-Encoding":["gzip, deflate, br"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Sec-Fetch-Mode":["navigate"],"X-Forwarded-Proto":["http"]}},"headers":{"Content-Length":["0"],"Server":["Caddy"],"Date":["Tue, 11 Jul 2023 17:37:08 GMT"]},"status":502}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.419411,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.009474647,"request":{"remote_ip":"172.19.0.1","remote_port":"45460","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Cookie":[],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"Sec-Fetch-User":["?1"],"X-Forwarded-Proto":["http"],"Sec-Fetch-Dest":["document"],"X-Forwarded-For":["172.19.0.1"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Accept-Encoding":["gzip, deflate, br"],"Cache-Control":["max-age=0"],"Sec-Fetch-Site":["none"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Ch-Ua-Platform":["\"Windows\""],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Content-Length":["0"],"Upgrade-Insecure-Requests":["1"],"Sec-Fetch-Mode":["navigate"],"X-Forwarded-Host":["localhost:8081"]}},"headers":{"Access-Control-Allow-Origin":["*"],"X-Forwarded-For":["::1"],"Content-Length":["0"],"Date":["Tue, 11 Jul 2023 17:37:08 GMT"],"Remote_ip":["::1"],"Server":["Caddy","Caddy"]},"status":502}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4204335,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.012591644,"request":{"remote_ip":"172.19.0.1","remote_port":"45456","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Content-Length":["0"],"Sec-Fetch-User":["?1"],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Mode":["navigate"],"Cache-Control":["max-age=0"],"Sec-Ch-Ua-Platform":["\"Windows\""],"Sec-Fetch-Site":["none"],"X-Forwarded-Host":["localhost:8081"],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"X-Forwarded-For":["172.19.0.1"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"X-Forwarded-Proto":["http"],"Accept-Encoding":["gzip, deflate, br"],"Upgrade-Insecure-Requests":["1"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Cookie":[]}},"headers":{"Content-Length":["0"],"Remote_ip":["::1"],"Server":["Caddy","Caddy","Caddy"],"X-Forwarded-For":["::1"],"Access-Control-Allow-Origin":["*"],"Date":["Tue, 11 Jul 2023 17:37:08 GMT"]},"status":502}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4210489,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.015341348,"request":{"remote_ip":"172.19.0.1","remote_port":"45452","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Cookie":[],"Sec-Fetch-Site":["none"],"X-Forwarded-Proto":["http"],"Cache-Control":["max-age=0"],"Content-Length":["0"],"Sec-Ch-Ua-Platform":["\"Windows\""],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Accept-Encoding":["gzip, deflate, br"],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Fetch-Dest":["document"],"X-Forwarded-Host":["localhost:8081"],"Upgrade-Insecure-Requests":["1"],"Sec-Fetch-Mode":["navigate"],"X-Forwarded-For":["172.19.0.1"],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"Sec-Fetch-User":["?1"]}},"headers":{"Access-Control-Allow-Origin":["*"],"Content-Length":["0"],"Date":["Tue, 11 Jul 2023 17:37:08 GMT"],"Remote_ip":["::1"],"Server":["Caddy","Caddy","Caddy","Caddy"],"X-Forwarded-For":["::1"]},"status":502}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4215286,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.018240023,"request":{"remote_ip":"172.19.0.1","remote_port":"45448","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"X-Forwarded-For":["172.19.0.1"],"Cookie":[],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Sec-Ch-Ua-Mobile":["?0"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"Content-Length":["0"],"Sec-Fetch-User":["?1"],"X-Forwarded-Proto":["http"],"Sec-Fetch-Site":["none"],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Cache-Control":["max-age=0"],"Upgrade-Insecure-Requests":["1"],"Accept-Encoding":["gzip, deflate, br"],"Sec-Ch-Ua-Platform":["\"Windows\""],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Mode":["navigate"],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"X-Forwarded-Host":["localhost:8081"]}},"headers":{"Access-Control-Allow-Origin":["*"],"Remote_ip":["::1"],"Server":["Caddy","Caddy","Caddy","Caddy","Caddy"],"X-Forwarded-For":["::1"],"Content-Length":["0"],"Date":["Tue, 11 Jul 2023 17:37:08 GMT"]},"status":502}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.422176,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.021950514,"request":{"remote_ip":"172.19.0.1","remote_port":"45444","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Sec-Fetch-Dest":["document"],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Fetch-Mode":["navigate"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"X-Forwarded-Proto":["http"],"Content-Length":["0"],"Cookie":[],"Upgrade-Insecure-Requests":["1"],"X-Forwarded-Host":["localhost:8081"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Cache-Control":["max-age=0"],"Sec-Ch-Ua-Platform":["\"Windows\""],"Sec-Fetch-Site":["none"],"Accept-Encoding":["gzip, deflate, br"],"X-Forwarded-For":["172.19.0.1"],"Sec-Fetch-User":["?1"],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"]}},"headers":{"Remote_ip":["::1"],"Server":["Caddy","Caddy","Caddy","Caddy","Caddy","Caddy"],"Access-Control-Allow-Origin":["*"],"Content-Length":["0"],"Date":["Tue, 11 Jul 2023 17:37:08 GMT"],"X-Forwarded-For":["::1"]},"status":502}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4227269,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.025991642,"request":{"remote_ip":"172.19.0.1","remote_port":"45440","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Sec-Ch-Ua-Platform":["\"Windows\""],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Upgrade-Insecure-Requests":["1"],"Cache-Control":["max-age=0"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"Cookie":[],"Sec-Fetch-User":["?1"],"X-Forwarded-Host":["localhost:8081"],"X-Forwarded-For":["172.19.0.1"],"Content-Length":["0"],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Mode":["navigate"],"Sec-Fetch-Site":["none"],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"Sec-Ch-Ua-Mobile":["?0"],"X-Forwarded-Proto":["http"],"Accept-Encoding":["gzip, deflate, br"]}},"headers":{"Content-Length":["0"],"Server":["Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy"],"Access-Control-Allow-Origin":["*"],"X-Forwarded-For":["::1"],"Date":["Tue, 11 Jul 2023 17:37:08 GMT"],"Remote_ip":["::1"]},"status":502}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4231918,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.029354971,"request":{"remote_ip":"172.19.0.1","remote_port":"45436","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"X-Forwarded-Proto":["http"],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"Sec-Ch-Ua-Platform":["\"Windows\""],"Sec-Fetch-Site":["none"],"Cookie":[],"Sec-Fetch-Mode":["navigate"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"Content-Length":["0"],"X-Forwarded-For":["172.19.0.1"],"Sec-Ch-Ua-Mobile":["?0"],"Upgrade-Insecure-Requests":["1"],"X-Forwarded-Host":["localhost:8081"],"Sec-Fetch-User":["?1"],"Cache-Control":["max-age=0"],"Sec-Fetch-Dest":["document"],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Accept-Encoding":["gzip, deflate, br"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"]}},"headers":{"Remote_ip":["::1"],"Date":["Tue, 11 Jul 2023 17:37:08 GMT"],"Server":["Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy"],"Access-Control-Allow-Origin":["*"],"Content-Length":["0"],"X-Forwarded-For":["::1"]},"status":502}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4236393,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.032605476,"request":{"remote_ip":"172.19.0.1","remote_port":"45432","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Cookie":[],"X-Forwarded-Proto":["http"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"Accept-Encoding":["gzip, deflate, br"],"Upgrade-Insecure-Requests":["1"],"Sec-Fetch-Site":["none"],"X-Forwarded-For":["172.19.0.1"],"Content-Length":["0"],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Ch-Ua-Platform":["\"Windows\""],"Cache-Control":["max-age=0"],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Mode":["navigate"],"Sec-Fetch-User":["?1"],"X-Forwarded-Host":["localhost:8081"]}},"headers":{"Access-Control-Allow-Origin":["*"],"Date":["Tue, 11 Jul 2023 17:37:08 GMT"],"X-Forwarded-For":["::1"],"Content-Length":["0"],"Server":["Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy"],"Remote_ip":["::1"]},"status":502}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4240682,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.03575201,"request":{"remote_ip":"172.19.0.1","remote_port":"45428","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Sec-Ch-Ua-Platform":["\"Windows\""],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"X-Forwarded-Host":["localhost:8081"],"Accept-Encoding":["gzip, deflate, br"],"Sec-Fetch-Site":["none"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Sec-Fetch-Mode":["navigate"],"Content-Length":["0"],"Cache-Control":["max-age=0"],"Cookie":[],"Sec-Fetch-Dest":["document"],"Upgrade-Insecure-Requests":["1"],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Fetch-User":["?1"],"X-Forwarded-Proto":["http"],"X-Forwarded-For":["172.19.0.1"]}},"headers":{"Date":["Tue, 11 Jul 2023 17:37:08 GMT"],"Content-Length":["0"],"X-Forwarded-For":["::1"],"Access-Control-Allow-Origin":["*"],"Remote_ip":["::1"],"Server":["Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy"]},"status":502}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4245615,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.039309339,"request":{"remote_ip":"172.19.0.1","remote_port":"45424","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Sec-Ch-Ua-Mobile":["?0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Cookie":[],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"Accept-Encoding":["gzip, deflate, br"],"Cache-Control":["max-age=0"],"X-Forwarded-Proto":["http"],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Sec-Fetch-Site":["none"],"X-Forwarded-For":["172.19.0.1"],"Sec-Fetch-Dest":["document"],"Content-Length":["0"],"Sec-Ch-Ua-Platform":["\"Windows\""],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"Sec-Fetch-Mode":["navigate"],"Upgrade-Insecure-Requests":["1"],"X-Forwarded-Host":["localhost:8081"],"Sec-Fetch-User":["?1"]}},"headers":{"Access-Control-Allow-Origin":["*"],"Content-Length":["0"],"Remote_ip":["::1"],"Server":["Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy"],"X-Forwarded-For":["::1"],"Date":["Tue, 11 Jul 2023 17:37:08 GMT"]},"status":502}
2023-07-11 19:37:08 {"level":"debug","ts":1689097028.4249828,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"192.168.120.170:80","duration":0.0432536,"request":{"remote_ip":"172.19.0.1","remote_port":"45420","proto":"HTTP/1.1","method":"GET","host":"localhost:8081","uri":"/iSy/api/administration/settings","headers":{"Cookie":[],"X-Forwarded-For":["172.19.0.1"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Fetch-Mode":["navigate"],"X-Forwarded-Proto":["http"],"Sec-Ch-Ua-Platform":["\"Windows\""],"Content-Length":["0"],"Sec-Fetch-User":["?1"],"Accept-Language":["de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"],"Sec-Ch-Ua":["\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\""],"Cache-Control":["max-age=0"],"Accept-Encoding":["gzip, deflate, br"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"],"X-Forwarded-Host":["localhost:8081"],"Upgrade-Insecure-Requests":["1"],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Site":["none"]}},"headers":{"Content-Length":["0"],"Date":["Tue, 11 Jul 2023 17:37:08 GMT"],"Remote_ip":["::1"],"Access-Control-Allow-Origin":["*"],"X-Forwarded-For":["::1"],"Server":["Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy","Caddy"]},"status":502}

3. Caddy version:

2.6.4

4. How I installed and ran Caddy:

Using the official docker image.

a. System environment:

Docker on Windows using WSL2.
The target of the reverse proxy is in the same network as the Windows machine and is reachable from inside the container via curl.

b. Command:

docker-compose up reverse-proxy

c. compose file:

services:
  reverse-proxy:
    image: caddy:latest
    ports:
      - "8081:80"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
    environment:
      - ADMINISTRATION_API=dev-isy1
    extra_hosts:
      - dev-isy1:192.168.120.170

d. My complete Caddy config:

{
    debug
}

:80 {
    reverse_proxy 192.168.120.170
}

5. Other information

Running the same Caddyfile from inside WSL2 with the caddy run ./Caddyfile or caddy reverse-proxy --debug --from :8081 --to http://192.168.120.170 command works just fine.

Running a simple nginx reverse-proxy also works just fine, config below.

events {
    worker_connections  1024;
}

http { 
	server {
	   listen 80;
	  listen [::]:80;
	  server_name localhost;
	  
	  location / {

		proxy_pass http://192.168.120.170/;
	  }
	}
}

Is 192.168.120.170 the IP of that same machine? If so then I think effectively Caddy is proxying to itself causing an infinite loop.

Nope, that’s the IP of our dev server, which is in the same network as the machine running Caddy.

Well :man_shrugging: I think it’s clear it’s somekind of networking issue, not a problem with Caddy in particular. You’ll need to dig deeper in your networking stack to find the problem.

Hmm I wouldn’t say it’s “clear”. There are some points speaking against it (IMO):

  1. Nginx reverse proxy working just fine, no special network config needed.
  2. Other services/applications in the network are also communicating with this server just fine.
  3. Caddy running not inside docker works great.
  4. Server is reachable from inside the caddy container as normal with curl

But it was my first thought as well.

There is no special network setup done on my side, but
I will try to build simple a setup with 2 PCs and a router to see if the issue continues.

Also I will try to build my own docker image instead of using the default from caddy.

Maybe I can find the cause of this.

But for now I guess we switch back to nginx sadly.

This smells sus (or rather, like a clue).

What is the exact curl command you’re running in the container that works?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.