NGINX timeout issue

Andrew Alexeev andrew at nginx.com
Tue Dec 3 10:09:47 UTC 2013


Hi,

On Dec 3, 2013, at 1:45 AM, Shankar Dagadu Borate <borate at adobe.com> wrote:

> Hi all,
> 
> We are using nginx as proxy server in all our production deployment. The nginx server proxy the http request to Amazon ELB (elastic load balancer) using upstream module. Currently we are seeing timeout issues in NGINX because NGINX caches the IP address on start. Now when there is change in IP address of ELB, NGINX doesn’t updates it’s IP and still point to old IP. We went through many post on internet and tried setting resolver to AWS DNS server, resolver timeout to 20s, valids to 30 sec. defining variable instead of direct name in proxy pass, request URL in proxy pass but nothing has worked for us. NGINX is not honoring the resolver and corresponding TTL settings.
> 
> Some of the blogs also says that they have tried similar things and nothing works for them. IT looks to me like this is bug in NGINX and will be resolved only by changing the source.
> 
> Has anybody found solution to this problem? If yes, please let us know your configurations.
> 
> Only solution I have right now is write some script and restart the server when timeout occurs. But this is not ideal solution.

Can you paste the relevant part of your nginx configuration here?
If that's about re-resolving server names in an upstream server group, then yes - there's no
such functionality in nginx at this time.

Still, if you're using proxy_pass to a "single server" instead of an upstream server group,
re-resolving works. That might be a workaround since you appear to proxy to a single
entry-point which is terminated on ELB?

Please check,
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
("If a domain name resolves to several addresses, all of them will be used in a round-robin fashion.")

Also,
"A server name, its port and the passed URI can also be specified using variables:
    proxy_pass http://$host$uri;
or even like this:
    proxy_pass $request;
In this case, the server name is searched among the described server groups, and, if not found, is determined using aresolver."

Hope this helps

> I am seriously thinking of moving to Apache Http server if this problem doesn’t get resolved.

:)

> Regards,
> 
> Shankar
> 
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx



More information about the nginx mailing list