I want to set up nginx as a forward proxy - much like Squid might work.
This is my server block:
server { listen 3128; server_name localhost; location / { resolver 8.8.8.8; proxy_pass } } This is the curl command I use to test, and it works the first time, maybe even the second time.
curl -s -D - -o /dev/null -x "" The corresponding nginx access log is
172.23.0.1 - - [26/Feb/2021:12:38:59 +0000] "GET HTTP/1.1" 200 2296040 "-" "curl/7.64.1" "-" However - on repeated requests, I start getting these errors in my nginx logs (after say the 2nd or 3rd attempt)
2021/02/26 12:39:49 [crit] 31#31: *4 connect() to [2c0f:fb50:4002:804::2010]:80 failed (99: Address not available) while connecting to upstream, client: 172.23.0.1, server: localhost, request: "GET HTTP/1.1", upstream: "", host: "storage.googleapis.com" 2021/02/26 12:39:49 [warn] 31#31: *4 upstream server temporarily disabled while connecting to upstream, client: 172.23.0.1, server: localhost, request: "GET HTTP/1.1", upstream: "", host: "storage.googleapis.com" What might be causing these issues after just a handful of requests? (curl still fetches the URL fine)
1 Answer
The DNS resolver was resolving to both IPV4 and IPV6 addresses. The IPV6 part seems to be causing an issue with the upstream servers.
Switching it off made those errors disappear.
resolver 8.8.8.8 ipv6=off; 1