nginx forward proxy config is causing "upstream server temporarily disabled while connecting to upstream" error

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like