【从单体架构到分布式架构】(三)请求增多,单点变集群(2):Nginx (3)

1. 设置超时时间:

location / { root html; index index.html index.htm; proxy_pass ; proxy_connect_timeout 5; # 连接超时时间 proxy_send_timeout 5; # 发送数据给后端服务器的超时时间 proxy_read_timeout 5; # 后端服务器的相应时间 #proxy_next_upstream off; # 是否要关闭重试机制 }

2. 设置尝试重试的次数:

upstream myserver{ server 127.0.0.1:8088 max_fails=1 fail_timeout=100s; server 127.0.0.1:8089 max_fails=1 fail_timeout=100s; }

其中 max_fails 表示最多失败次数,fail_timeout 表示在一个时间段内,服务器不会再次尝试访问;上面的配置表示在 100s 内,只要超时失败 1 次,就不再访问该服务器。

完整配置文件请参考:设置超时重试时间5s-失败1次100秒之内不再访问-nginx.conf

除此之外,我们还可以安装第三方模块来实现“后端服务器节点健康状态检查”:

nginx_upstream_check_module

ngx_http_healthcheck_module

5.3 Nginx 的高可用 以为使用 Nginx ,部署了多台应用服务器,可以保证应用服务器的高可用(挂掉一台,还有其他服务器可以用); 但是如何保证负载均衡的高可用性?也就是万一 Nginx 挂了怎么办?

Nginx 同样也需要部署多台,架构大概是这个样子的:

现在应用比较广泛的是利用 keepalived 实现 Nignx 的高可用:

5.4 其他

除了以上的常见功能,强大的 Nginx 还可以:

限制 IP 访问频率和带宽占用;

缓存静态资源;

文件压缩;

TCP 负载;

防盗链;

等等等等...

总结

【从单体架构到分布式架构】(三)请求增多,单点变集群(2):Nginx

我们现在的架构已经变成了:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjfxp.html