我可以只使用 2 台服务器进行 nginx 负载平衡吗?

我可以只使用 2 台服务器进行 nginx 负载平衡吗?

如果我只有 2 台服务器,我可以将每台服务器都用作后端和前端吗?

服务器 1:主负载均衡器/后端服务器 1 服务器 2:从属负载均衡器/后端服务器 2

是否可以?

答案1

是的,这是可能的,而且很容易做到。查看 nginx wiki。您可以将“webserver”部分绑定到 80 以外的其他端口,并将负载均衡器(或代理,如果是这种情况)绑定到端口 80。使用类似这样的方法:

加载虚拟主机

upstream app {
   server 192.168.1.2:81;
   server 192.168.1.3:81;
}
server {
   listen 80;
   // all the usual bla bla
   location / {
       proxy_pass http://app;
   }
}

使用 webserver vhost 就像使用默认的一样,只是使用“listen 81”而不是“listen 80”。这未经测试,我只是从仅作为代理运行的配置中复制了几行,后端服务器位于不同的机器上……但它应该可以正常工作。

如果您还想在这两个代理之间进行负载平衡,请尝试在 nginx 前面使用 ultramonkey,这样您的所有请求将均匀分布到两个服务器(或者您可以使用 nginx 来实现)

答案2

MihaiM 的答案对于负载均衡器来说是正确的。但您的问题是主从负载平衡。对于这一点,他的答案并不正确。

最近我用过WP 复制负载均衡器,实现高可用性为我的 wordpress 网站提供高可用性。它对我来说非常完美。它使用 nginx 配置上游 + 监听,如下所示

上游应用程序 { 服务器从服务器 IP; 服务器从服务器 IP; } 服务器 { 监听主服务器 IP:80; // 所有常见的 bla bla 位置 / { proxy_passhttp://应用程序; } }

相关内容