如何允许NGINX缓冲多个Django App Server

时间:2013-04-19 16:57:18

标签: django nginx gunicorn

如何允许NGINX缓冲多个Django App Server的客户端请求,这些服务器都运行像Gunicorn这样的WSGI服务器?我需要在配置文件中更改什么?

2 个答案:

答案 0 :(得分:4)

使用nginx的upstream选项定义应用服务器池;当您使用proxy_pass时,您可以将proxy_pass传递给指定的上游:

upstream my-upstream {
 server 127.0.0.1:9000;
 server 127.0.0.1:9001;
}

location / {
  proxy_pass http://my-upstream;
}

除非另有说明,否则请求将在不同的上游服务器之间进行循环。

答案 1 :(得分:1)

upstream my-upstream {
 least_conn;
 server 127.0.0.1:9000;
 server 127.0.0.1:9001;
}
location / {
  proxy_pass http://my-upstream;
}

让我们假设当服务器1关闭时您正在使用4服务器,那么nginx会智能地将您的下一个请求转移到您的下一个可用服务,一旦服务器1启动,那么您的下一个请求就会在服务器1中再次发送。轮循算法来转移请求。

upstream my-upstream {
 ip_hash;
 server 127.0.0.1:9000;
 server 127.0.0.1:9001;
}

location / {
  proxy_pass http://my-upstream;
}

在这种情况下,对于以前的情况将是不同的,就像我们将始终从服务器1获得响应,并且当我们的服务器1停机时,它将到达服务器2,然后当服务器1停机时,将是响应服务器1。再次。