对于upstream负载均衡配置
1.如果后端报错直接返回500 可以直接使用 upstream
upstream backend { server1, server2 } location /api{ proxy_pass https://backend/; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_next_upstream_timeout 3s; proxy_next_upstream_tries 2;使用lua脚本 直接使用openresty更方便
核心思路 直接通过lua脚本替代 业务宕机切换节点逻辑
使用共享内存 lua_shared_dict 通过 cache = ngx.shared.xx 获取到共享内存 key 通过cache.set(name,value,timeout) cache.get(name) 设置 获取内存 记录失败的节点 在下次转发之前 判断是否访问的是已经记录的失败节点 如果是 则切换到另一节点 具体代码如下
content_by_lua
新增模块/版本升级
解压安装包 通过./configure --with指定参数 通过nginx -V / openresty -V 查看当前安装的版本 和安装时携带的模块 在./configure -with时携带之前的模块 并加载指定路径下的新模块 make 生成新的二进制文件 注意不要 make install
然后走热更新流程:
备份文件 cp
kill -USR2 开启新的master
Kill - WINCH 关闭旧的 master
回退 kill HUP 旧进程 kill QUIT 新进程
未完