我想在 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,但设置更高的默认权重可以让您轻松引入权重较低的服务器。