Nginx灰度环境配置(基于Cookie)
1、系统环境
系统版本:CentOS7.6,Nginx版本:1.18.0
2、灰度环境意义
1、针对特定用户展示灰度环境,分析功能迭代效果
2、测试人员进行新版本发布前的灰度环境测试
3、针对搜索引擎制定策略
3、添加Nginx源
cd /etc/yum.repos.d/
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
4、安装Nginx
安装依赖
yum install -y gcc pcre-devel openssl-devel zlib-devel
安装Nginx
yum install -y nginx
5、查看Nginx安装目录
whereis nginx
以下为默认配置:
(1) Nginx配置路径:/etc/nginx/
(2) PID目录:/var/run/nginx.pid
(3) 错误日志:/var/log/nginx/error.log
(4) 访问日志:/var/log/nginx/access.log
(5) 默认站点目录:/usr/share/nginx/html
6、编辑配置文件,实现Cookie分流
vim /etc/nginx/conf.d/default.conf
编辑default.conf
upstream test_01 {
server IP1:port max_fails=1 fail_timeout=60;
}
upstream test_02 {
server IP2:port max_fails=1 fail_timeout=60;
}
upstream default {
server IP1:port max_fails=1 fail_timeout=60;
}
server {
listen 80;
server_name www.test.cn;
set $group "default";
if ($http_cookie ~* "test=0"){
set $group test_01;
}
if ($http_cookie ~* "test=1"){
set $group test_02;
}
location / {
proxy_pass http://$group;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
index index.html index.htm;
}
}
7、配置说明
两台灰度服务器,分别命名为test_01、test_02,并配置IP、端口。
Cookie携带test=0或不存在test时,代理至test_01;cookie携带test=1时,代理至test_02