浏览 1.9k
nginx系列之一:nginx入门
nginx系列之二:配置文件解读
nginx系列之三:日志配置
nginx系列之四:web服务器
nginx系列之五: 负载均衡
nginx系列之六:cache服务
nginx系列之七:限流配置
nginx系列之八:使用upsync模块实现负载均衡
转自:在此感谢原博主的整理分享
nginx reload是有一定损耗的,如果你使用的是长连接的话,那么当reload nginx时长连接所有的worker进程会进行优雅退出,并当该worker进程上的所有连接都释放时,进程才真正退出。
对于社区版nginx目前有三个选择方式:
本文使用upsync模块来解决配置文件修改后,reload nginx进程造成性能下降的问题。
它的功能是拉取 consul 的后端 server 的列表,并更新 Nginx 的路由信息。此模块不依赖于任何第三方模块。consul 作为 Nginx 的 db,利用 consul 的 KV 服务,每个 Nginx work 进程独立的去拉取各个 upstream 的配置,并更新各自的路由。
这步可以不做,如果不做,编译的时候删除这个模块
下载nginx-upsync-module源码
创建nginx配置文件
查看conf/servers/servers_test.conf 文件中是否有内容
或者浏览器打开http://192.168.56.11:8080/upstream_show?test
显示内容如下:
总结
此模块只修改upstream 中的缓存信息,不能修改或添加其他配置
测试中遇到的问题
在添加服务时出现如下错误,导致服务添加不能实时进行,大约需要3分钟左右时间。
consul日志:
nginx日志
问题现象
当添加一个服务时,出现此问题,新增服务不能及时添加到负载中,不影响运行正常的服务。 此时再往consul继续添加一个服务时,可能会导致此错误终止,并能成功添加当前两条服务记录。
官方github地址
nginx_upstream_check_modulehttps://www.cnblogs.com/CarpenterLee/p/8084533.html)
按点赞数排序
按时间排序