nginx 可以循环调度到不同端口上的服务器列表吗?

nginx 可以循环调度到不同端口上的服务器列表吗?

我想在 nginx 中映射一个特定的域,然后让 nginx 循环到将响应 http 请求的服务器列表。

因此,我有 www.domain1.com 的 nginx

它是一个 python 应用程序,我在不同的端口上运行了 10 个 paste 实例,我希望 nginx 使用循环方式转发/代理请求。

可以做到吗?如果可以,怎么做?

答案1

您可以为每个后端服务器指定端口上游块在 nginx 中:

upstream mybackend  {
    server localhost:8080;
    server localhost:8081;
    server localhost:8082;
    server localhost:8083;
    server localhost:8084;
    server localhost:8085;
    server localhost:8086;
    server localhost:8087;
    server localhost:8088;
    server localhost:8089;
}

server {
  location / {
    proxy_pass  http://mybackend;
  }
}

答案2

真的,你最好使用类似哈普罗西为此,但是nginx可以反向代理到后端的多个服务器。

看看上游nginx 模块http://wiki.nginx.org/NginxHttpUpstreamModule

将上游服务器设置为相同的权重,以实现分布式循环平衡。例如

upstream backend { 
     server ww1.domain.com weight=10;
     server ww2.domain.com weight=10;
}

默认情况下权重为 1,因此从技术上讲您不需要权重 10,但设置更高的默认权重可以让您轻松引入权重较低的服务器。

相关内容