Welcome! Log In Create A New Profile

Advanced

Re: How to wait for upstream server to start

kevin gill
February 24, 2010 05:32AM
> could you describe how you got this working? i need something similar
> to make sure that a django app doesn't die.

I assume that you are modifing a working nginx/django configuration.

Mine is a zope server. For static content I go to varnish and for the rest
I use proxy_pass to go to zope. I inserted haproxy in front of zope.

nginx -> varnish -> haproxy -> zope
nginx ------------> haproxy -> zope

nginx is on port 80
varnish is on port 8082
zope is on port 8081
haproxy is on port 8085

#------------------------------------------------------------
nginx server configuration...

upstream varnish1 {
server 127.0.0.1:8082;
}
upstream haproxy {
server 127.0.0.1:8085;
}

#------------------------------------------------------------
haproxy configuration....

global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096
user haproxy
group haproxy
daemon

# enable debug to run in the foreground
debug

defaults
mode http
retries 100
option redispatch
timeout connect 60s

# I have some very slow requests - generate 1000's of emails, printouts
timeout queue 300s
timeout client 1200s
timeout server 1200s

# this is just monitoring stuff
monitor-uri /haproxy-ping
stats enable
stats uri /haproxy-status
stats refresh 5s
stats realm Haproxy statistics

listen zope3 0.0.0.0:8085
dispatch 127.0.0.1:8081 maxcon 3

#------------------------------------------------------------
Install haproxy...

$ apt-get install haproxy
edit /etc/default/haproxy and enable it
$ /etc/init.d/haproxy start

Regards,

Kevin

>
> --timball
>
> On Tue, Feb 23, 2010 at 6:59 PM, kevin gill <kevin@movieextras.ie> wrote:
>> I got this working using haproxy with the 'dispatch' option.
>>
>> Thanks
>>
>>
>>> I am running a low traffic site using nginx. I use one upstream
>>> multi-threadded server to serve the content. I use the proxy module to
>>> forward the requests.
>>>
>>> Occasionally, I need to restart the upstream server. I takes 20-30
>>> seconds
>>> to startup.
>>>
>>> I want requests to queue until the server is started, i.e. configure a
>>> 30
>>> second timeout before I get the "502 Bad Gateway" response.
>>>
>>> I am running nginx/0.7.64 on ubuntu.
>>>
>>> Is there an nginx configuration option to make it wait until and retry
>>> while the server restarts? Alternatively, is there another product I
>>> should put in the middle between nginx and my upstream server which
>>> provides this functionality.
>>>
>>> Thanks,
>>>
>>> Kevin
>>>
>>>
>>> _______________________________________________
>>> nginx mailing list
>>> nginx@nginx.org
>>> http://nginx.org/mailman/listinfo/nginx
>>>
>>>
>>>
>>
>>
>>
>> _______________________________________________
>> nginx mailing list
>> nginx@nginx.org
>> http://nginx.org/mailman/listinfo/nginx
>>
>
>
>
> --
> GPG key available on pgpkeys.mit.edu
> pub 1024D/511FBD54 2001-07-23 Timothy Lu Hu Ball <timball@tux.org>
> Key fingerprint = B579 29B0 F6C8 C7AA 3840 E053 FE02 BB97 511F BD54
>
> _______________________________________________
> nginx mailing list
> nginx@nginx.org
> http://nginx.org/mailman/listinfo/nginx
>
>
>



_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx
Subject Author Posted

How to wait for upstream server to start

kevin gill February 23, 2010 05:06PM

Re: How to wait for upstream server to start

kevin gill February 23, 2010 07:06PM

Re: How to wait for upstream server to start

Timothy Ball February 23, 2010 07:24PM

Re: How to wait for upstream server to start

kevin gill February 24, 2010 05:32AM

Re: How to wait for upstream server to start

Guillaume Filion February 24, 2010 04:40PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 138
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready