Nginx+Tomcat负载均衡宕机自动切换
基于Nginx 、Tomcat实现负载均衡情况下,某台服务器宕机自动切换至健康服务。
通常有两种实现方式:
方式一:设置备用服务器,当访问服务器异常时才访问备用服务;
方式二:设置服务器转发请求超时时间;
一、设置备机
在Nginx根目录下conf目录中,修改nginx.conf:
upstream choupangxia.com { server 127.0.0.1:6666 weight=1; server 127.0.0.1:8080 weight=1; server 127.0.0.1:8081 backup; }
其中最后一行“server 127.0.0.1:8081 backup;”表示8081这个端口服务是备用服务,专门应对其他服务宕机情况。
二、设置转发请求超时时间
nginx.conf配置如下:
location / { proxy_pass https://www.choupangxia.com; proxy_redirect default; proxy_connect_timeout 1; proxy_read_timeout 1; proxy_send_timeout 1; }
其中proxy_connect_timeout表示,超时1s即转发到其他服务器请。但这里需要注意接口的幂等性问题。确保服务处理时间过长导致超时,但实际上已经执行的情况存在。
另外,如果未设置proxy_connect_timeout或对应的值比较大,则会出现一半访问速度快,一半访问速度慢的情况。其中访问慢是因为连接超时之后才会切换到另外一台服务器上。
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接