网站首页 > 技术教程 正文
概述
因为我们的接口环境是在winserver上,而gor又刚好没对应版本(网上很多办法都试过了...哪位朋友测试过可以的话指点下),所以用了nginx的ngx_http_mirror_module模块来实现需求。
01
ngx_http_mirror_module模块
nginx官网公布了nginx1.13.4最新的ngx_http_mirror_module模块,利用mirror模块,业务可以将线上实时访问流量拷贝至其他环境,基于这些流量可以做版本发布前的预先验证,进行流量放大后的压测等等。
02
mirror模块配置
mirror模块配置分为两部分,源地址和镜像地址配置,配置位置可以为nginx配置文件的http, server, location上下文,配置示例为:
mirror模块配置说明
#original
location / { #location /指定了源uri为/
root html;
index index.html index.htm;
mirror /mirror; #lmirror /mirror指定镜像uri为/mirror
mirror /mirror; #lmirror /mirror指定镜像uri为/mirror
mirror_request_body on; # 指定是否镜像请求body部分,请求自动缓存;
}
#mirror
location /mirror {
internal;internal #指定此location只能被“内部的”请求调用,外部的调用请求会返回”Not found” (404)
proxy_set_header X-Original-URI $request_uri;
proxy_set_header Host baidu-nginx-b.com; #proxy_set_header 设置镜像流量的头部
proxy_pass http://192.168.1.100$request_uri; #proxy_pass 指定将镜像数据发送给test server的地址
}
location /mirror2 {
internal;internal #指定此location只能被“内部的”请求调用,外部的调用请求会返回”Not found” (404)
proxy_set_header X-Original-URI $request_uri;
proxy_set_header Host baidu-nginx-b.com; #proxy_set_header 设置镜像流量的头部
proxy_pass http://192.168.1.100$request_uri; #proxy_pass 指定将镜像数据发送给test server的地址
}
1、original配置
- location /指定了源uri为/
- mirror /mirror指定镜像uri为/mirror
- mirror_request_body off | on 指定是否镜像请求body部分,此选项与proxy_request_buffering、fastcgi_request_buffering、scgi_request_buffering和 uwsgi_request_buffering冲突,一旦开启mirror_request_body为on,则请求自动缓存;
- proxy_pass 指定上游server的地址
2、mirror配置
- internal 指定此location只能被“内部的”请求调用,外部的调用请求会返回”Not found” (404)
- proxy_pass 指定上游server的地址
- proxy_set_header 设置镜像流量的头部
03
流量复制--实验测试
1、下载nginx,解压缩,运行cmd,使用命令进行操作,不要直接双击nginx.exe,不要直接双击nginx.exe,不要直接双击nginx.exe
一定要在dos窗口启动,不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程,再启动才可以。
2、启动nginx服务,启动时会一闪而过是正常的
start nginx
3、查看任务进程是否存在,dos或打开任务管理器都行
tasklist /fi "imagename eq nginx.exe"
4、如果程序没启动就直接start nginx启动,如果已经启动了就使用以下命令重新加载配置文件并重启
nginx -s reload
之后就打开浏览器访问刚才的域名及端口http://localhost:80,出现欢迎页就说明部署成功了
5、启动web服务
这里偷个懒,用之前gor的一些半成品模拟两个server
d:\goreplay gor file-server :8000 gor file-server :8001
6、配置NGINX
upstream zs {
server 127.0.0.1:8000;
}
upstream cs {
server 127.0.0.1:8001;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /{
#access_log D:\nginx\access.log accesslog;
mirror /mirror;
mirror_request_body on;
proxy_pass http://zs;
}
# 镜像站点配置
location /mirror {
internal; # 内部配置
proxy_pass http://cs$request_uri;
proxy_pass_request_body on; # Indicates whether the original request body is passed to the proxied server. default value is on
proxy_set_header X-Original-URI $request_uri;
}
}}
7、访问地址:http://localhost/goreplay-1.0.0/
可以看到两边都有对应的请求。
这个办法也是一个解决方案,对线上压力也比较小,不过用户访问生产服务器请求被nginx复制发送给测试服务器时,mirror不会输出http返回内容,这里就需要另外配置了。
另外一点就是不会保存流量下来,无法做到随时随地重放,只能说折中吧,还得继续研究。
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~
猜你喜欢
- 2024-10-09 面试题 HTTP及web服务相关(nginx apache)
- 2024-10-09 Nginx实现认证登录(nginx登录验证)
- 2024-10-09 Nginx 是如何处理 HTTP 头部的?(女飞行员余旭遗体头部图)
- 2024-09-08 nginx 安装教程(详解)(nginx安装与配置详解)
- 2024-09-08 学习Nginx,跟着阿里大牛走,一套精心整理的Nginx(PDF文档)
- 2024-09-08 nginx实现内外网访问限制(nginx 内网)
- 2024-09-08 nginx的多域http、https同时访问配置及http重定向https
- 2024-09-08 nginx httpstatus 408 研究(404 not found nginx是什么意思)
- 2024-09-08 Nginx完全指南--内容解析(三)(nginx 详解)
- 2024-09-08 Nginx http 强转https(http://cas.tjgl.teacheredu.cn)
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
- 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
- 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
- 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
- 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- 最近发表
-
- Excel计算工龄和年份之差_excel算工龄的公式year
- Excel YEARFRAC函数:时间的"年份比例尺"详解
- 最常用的10个Excel函数,中文解读,动图演示,易学易用
- EXCEL中如何计算截止到今日(两个时间中)的时间
- 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- Excel日期函数之DATEDIF函数_excel函数datedif在哪里
- Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)

本文暂时没有评论,来添加一个吧(●'◡'●)