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/;
}
}
}