Skip to content

Latest commit

 

History

History
75 lines (65 loc) · 4.48 KB

README.md

File metadata and controls

75 lines (65 loc) · 4.48 KB

nginx 灰度发布项目

项目大致介绍

  • 背景:一种常见的应用灰度发布的实现
一个线上的应用部署有 4台服务器,nginx 做了负载均衡,策略可能为 ip_hash,轮询,权重,最少连接之类的。
每次的请求可能分发到不同的服务器

在应用发布的时候,先把 发布的文件部署到一台服务器上,并且把这台服务器设置为内部访问,nginx 这时把
这台服务器不加入到负载均衡里面,线上的流量只访问到其他3台节点。测试人员通过内部ip访问到这台新发布应用的
节点,在测试完成之后就把这台服务器重新加入到负载均衡里面。

以上的工作都是运维完成的,相当于重复的工作

接口的 upstream 参数就是对应哪个服务, server 参数就是哪一个节点
  • 方案需要的工具

    • 1 openresty 或者 nginx
    • 2 luajit 环境
    • 3 nginx 添加依赖的模块
    ./configure --add-module=D:\dev\app\nginx\module\ngx_devel_kit-0.3.1 --add-module=D:\dev\app\nginx\module\lua-nginx-module-0.10.16rc5
    
  • 运行步骤

    • openresty 配置步骤
      • 把 conf 文件夹的配置文件放到 openresty 的 conf/vhost 目录下
      • 把 lue-file 文件夹下的 lua 脚本放到 openresty 的 lualib 目录下
      • 启动3个web服务,对应到 8081,8082,8083 接口当作负载均衡的3个节点
      • 为这3个web服务做一个动态负载均衡的配置,在上面提到的配置文件里,访问这个 服务的一个接口
    • beego 项目运行步骤
      • 1 项目使用 beego web框架和go mod依赖管理
      • 2 新建一个数据库,名字跟配置文件的一样,把 data.sql 脚本执行
      • 3 进入项目根目录,执行 go run main.go 会自动下载相关依赖并启动
      • 4 浏览器打开 https://localhost:8090/node/page 检验项目是否能正常运行