How does Nginx handle the request of the upstream server when it is marked as `down`?
Maxim Dounin
mdounin at mdounin.ru
Mon Apr 13 13:06:42 UTC 2015
Hello!
On Mon, Apr 13, 2015 at 04:16:56AM -0400, HUMing wrote:
> For a simple Nginx configuration like this:
> For a simple Nginx configuration like this:
>
> upstream myservers {
> server 127.0.0.1:3000;
> server 127.0.0.1:3001;
> }
> server {
> listen 80;
> location / {
> proxy_pass http://myservers;
> }
> I have two questions related zero downtime of the application:
>
> If I change the configuration to mark the first server server 127.0.0.1:3000
> as down, I assume that no new request will go to that server, but what about
> the current request that is handled by the upstream server? Does Nginx can
> still return valid response to end user for that request?
>
> If I remove the first server server 127.0.0.1:3000 and reload the
> configuration, what about the current request that is handled by this
> upstream server?
Both removal of the server and marking it down are equivalent as
long as you are using round-robin balancing (there is a difference
when using ip_hash and hash balancers, as "down" implies less
remapping when temporary disabling a server).
In both cases the server won't be used by new worker processes to
handle new requests, and old worker processes will gracefully
terminate upon completion of previously started requests.
See here for details:
http://nginx.org/en/docs/control.html#reconfiguration
--
Maxim Dounin
http://nginx.org/
More information about the nginx
mailing list