i’m new to nginx and first of all i have to say it’s a great piece of
software.
I need some more detailed Information about nginx behaviour regarding
HttpUpstreamModule and I hope you can give me some hints and links where
i can learn more about it.
I set up nginx/1.2.2 as reverse proxy in front of a bunch of apache
server(*) which are located in different housing locations.
Now I have some questions and I can’t find any docs or wiki pages with
detailed answers.
how does nginx detect if one ore more upstream servers has diappeared?
what kind of mechanism does nginx use? icmp or something else?
how often does nginx request the status of upstream servers?
how can I monitor the status of upstream server seen by nginx (I
monitor the status of running apache prcesses on the upstream server
separately)
It’s a is really simple setup atm and I have not activated any other
module:
upstream frontend {
server frontend1:80 weight=100 max_fails=2 fail_timeout=10s;
server frontend2:80 weight=100 max_fails=2 fail_timeout=10s;
server frontend3:80 weight=100 max_fails=2 fail_timeout=10s;
server frontend4:80 weight=100 max_fails=2 fail_timeout=10s;
server frontend5:80 weight=100 max_fails=2 fail_timeout=10s;
}
On Fri, Aug 10, 2012 at 01:36:46PM +0200, Axel wrote:
Now I have some questions and I can’t find any docs or wiki pages
with detailed answers.
how does nginx detect if one ore more upstream servers has diappeared?
what kind of mechanism does nginx use? icmp or something else?
It detects based on status of requests to upstream servers. If
requests fail - the server is considered down and additional
requests aren’t routed to it for some time.
how often does nginx request the status of upstream servers?
For alive servers - as often as normal requests are routed to the
servers. For servers already considered down - once per
fail_timeout (per worker, see below).
how can I monitor the status of upstream server seen by nginx (I
monitor the status of running apache prcesses on the upstream server
separately)
Currently, there is no way. Moreover, each nginx worker process
has it’s own idea about status of upstream servers.
Now I have some questions and I can’t find any docs or wiki pages with
detailed answers.
how does nginx detect if one ore more upstream servers has diappeared?
what kind of mechanism does nginx use? icmp or something else?
how often does nginx request the status of upstream servers?
how can I monitor the status of upstream server seen by nginx (I monitor
the status of running apache prcesses on the upstream server separately)
You may try the Tengine (http://tengine.taobao.org/), a forked nginx
version. We added proactive health check for the upstream servers.
This module
(http://tengine.taobao.org/document/http_upstream_check.html)
can check the upstream servers periodically. If the upstream is marked
down, the request will not be sent to this server. If it’s up, the
request will be sent to it again.
thanks for your answers. I will have a look on nginx development and
take a look as suggested in the other answer.
Regards,
Axel
Am 10.08.2012 15:45, schrieb Maxim D.:
how does nginx detect if one ore more upstream servers has diappeared?
what kind of mechanism does nginx use? icmp or something else?
It detects based on status of requests to upstream servers. If
requests fail - the server is considered down and additional
requests aren’t routed to it for some time.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.