build议使用负载均衡还是HA设置?

我有一个应用程序运行在networking服务器(ws1),并连接到应用程序服务器(as1)。 我有相同的应用程序运行在另一个web服务器(ws2)和另一个应用程序服务器(as2)。 但是我只有一个反向代理服务器。 所以我的设置是类似的

服务器设置图

所以目前我在这些服务器之间进行负载平衡。 我的Nginxconfiguration如下所示:

http { upstream myapp1 { server ws1.example.com; server ws2.example.com; } server { listen 80; location / { proxy_pass http://myapp1; } } } 

但是,通过Nginx进行负载均衡还是进行HA设置会更好。 如果我做HA设置应该是Web服务器和应用程序服务器集群?

负载平衡服务器都是非常好的,但是如果提供负载平衡的服务器崩溃了,其他两台服务器都不能访问。

解决这个问题的一个方法就是build立一个HA安排,这样如果负载均衡器退出,另一个服务器就会马上占用它的位置。

为了提供HA,您可以使用像keepalived这样的服务,它使用VRRP协议来提供高度可用的Internet地址。 事实上,它工作得很好。 类似于以下的configuration将起作用。

假设你想要一个服务在10.10.10.100可见

创build两台机器,一台IP 10.10.10.101,另一台IP 10.10.10.102两台都安装keepalived服务。 请记住设置:net.ipv4.ip_nonlocal_bind = 1在两台机器的sysctl.conf中。

按照描述设置nginxconfiguration。

第一个节点keepalived.conf:

 vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 150 advert_int 1 authentication { auth_type PASS auth_pass secretpass } virtual_ipaddress { 10.10.10.100 } } 

第二个节点:

 vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 150 advert_int 1 authentication { auth_type PASS auth_pass secretpass } virtual_ipaddress { 10.10.10.100 } } 

现在会发生什么,当主机运行时,它将提供虚拟ip 10.10.10.100如果你停止这台机器,另一个将接pipeIP。

更好的例子: Ubuntu 14.04上的简单的Keepalived故障转移设置