1

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

4

2 回答 2

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;
}

除非您另外指定,否则请求将在不同的上游服务器之间循环。

于 2013-04-19T17:21:43.017 回答
0
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 中再次发送。实际上 nginx 使用循环算法转移请求。

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。

于 2019-09-03T11:46:59.127 回答