如果我只有 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://应用程序; } }