如何允许NGINX缓冲多个Django App Server的客户端请求,这些服务器都运行像Gunicorn这样的WSGI服务器?我需要在配置文件中更改什么?
答案 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。再次。