`

Nginx中将正式环境流量copy一份到测试环境

 
阅读更多

当测试环境需要一些数据时,除了仿造一些数据外,更方便和更好的做法是,将来自正式环境的用户请求copy一份到测试环境。

依赖模块:lua-nginx-module,ngx_devel_kit, headers-more-nginx-module

以上模块在github上均可以找到,作者是国内nginx的著名开发者agentzh。

使用模块需要重新编译nginx,加上编译选项:–add-module=/path/to/your/module 。

下面是nginx配置:

复制代码代码如下:

>>cat copy_req.lua

local res1, res2, action
action = ngx.var.request_method
if action == “POST” then
arry = {method = ngx.HTTP_POST, body = request_body}
else
arry = {method = ngx.HTTP_GET}
end

if ngx.var.svr == “on” then
res1, res2 = ngx.location.capture_multi {
{ “/s1″ .. ngx.var.request_uri , arry},
{ “/test” .. ngx.var.request_uri , arry},
}
else
res1, res2 = ngx.location.capture_multi {
{ “/s1″ .. ngx.var.request_uri , arry},
}
end

if res1.status == ngx.HTTP_OK then
local header_list = {“Content-Length”, “Content-Type”, “Content-Encoding”, “Accept-Ranges”}
for _, i in ipairs(header_list) do
if res1.header[i] then
ngx.header[i] = res1.header[i]
end
end
ngx.say(res1.body)
else
ngx.status = ngx.HTTP_NOT_FOUND
end

>>cat   nginx.conf

复制代码代码如下:

……..

location ~* ^/s1 {
log_subrequest on;
rewrite ^/s1(.*)$ $1 break;
proxy_pass http://s1;
access_log /opt/logs/nginx/youni/upstream.log;
}

location ~* ^/test {
log_subrequest on;
rewrite ^/test(.*)$ $1 break;
proxy_pass http://test;

access_log /opt/logs/nginx/youni/upstream.log;

}

location ~* ^/(.*)$ {
client_body_buffer_size 2m;
set $svr     “on”;               #开启或关闭copy功能

content_by_lua_file    req_fenliu.lua;
}

upstream s1 {
server  x.x.x.x;
}

upstream test {
server  xx.xx.xx.xx;
}

其中nginx.conf内的http,server域没有给出,大家依照自己的配置即可。

 

分享到:
评论

相关推荐

    NGINX流量拷贝方式进行并发测试.conf

    有时需要进行并发测试,需要排除本地机器等环境问题,可以使用web服务器NGINX的流量拷贝方式把请求进行翻倍,从而达到并发目的

    Nginx配置统计流量带宽请求及记录实时请求状态的方法

    流量带宽请求状态统计 ngx_req_status用来展示nginx请求状态信息,类似于apache的status,nginx自带的模块只能显示连接数等等信息,我们并不能知道到底有哪些请求、以及各url域名所消耗的带宽是多少。ngx_req_status...

    内网nginx全套安装环境

    总结来说,内网Nginx全套安装环境的搭建涉及了从安装GCC到配置Nginx的一系列步骤。正确配置和管理Nginx,可以为内网提供高效、安全的Web服务。在实际操作中,应根据具体需求进行调整,确保Nginx与内部网络架构的无缝...

    nginx四层代理测试 及SLB负载均衡功能配置测试

    通过对nginx 四层代理和SLB负载均衡功能的测试,我们可以了解到其在实际应用中的优缺点和配置方法。 一、nginx 四层代理测试 nginx 四层代理是指nginx 服务器作为反向代理服务器,将客户端的请求转发到后端服务器...

    linux离线环境下nginx安装包-附带所有依赖环境和安装教程

    现在,你应该可以通过访问服务器的IP地址来测试Nginx是否已成功运行。 在实际操作中,可能会遇到各种系统和配置特定的问题,因此,提供的安装教程至关重要。它应该详细说明了每个步骤,包括任何可能的错误处理和...

    基于Nginx和Docker的测试环境bara.zip

    bara是一个基于Nginx和Docker的多版本程序同时在线的简易测试环境,只能单机使用,并且只是一个PoC而已,仅供参考。简单来说,就是使用Nginx做反向代理,代理到后面的Docker容器,bara能动态创建Nignx配置文件,重启...

    Windows、Nginx、MySQL、PHP集成环境

    Windows、Nginx、MySQL、PHP集成环境 解压即可使用 版本信息: nginx 1.5.8 php 5.2.16 x86 start_nginx.bat启动wnmp集成环境 stop_nginx.bat关闭wnmp集成环境

    16-08 nginx-hls-多码率测试环境搭建1

    【标题】:“16-08 nginx-hls-多码率测试环境搭建1”描述了如何构建一个基于Nginx的HLS(HTTP Live Streaming)多码率测试环境。这个环境利用了Nginx的RTMP模块以及nginx-http-flv-module,以便实现流媒体的实时传输...

    iframe嵌入链接本地环境正常,正式环境重定向到登录解决

    ### iframe嵌入链接本地环境正常,正式环境重定向到登录问题解决方案 #### 问题背景 在开发过程中,经常需要将一个网页嵌入到另一个网页中,通常的做法是使用HTML中的`<iframe>`标签来实现这一功能。但在实际操作中...

    nginx+tomcat测试报告.doc

    2.1.1 内网带宽:测试环境中,内网带宽为1Gbps,确保网络传输不会成为性能瓶颈。 2.1.2 网络拓扑示意:采用典型的前端Nginx作为反向代理,后端多台Tomcat服务器的负载均衡架构,如图所示: (此处应有网络拓扑图,但...

    nginx性能测试与优化1

    在进行性能测试时,需要确保系统和Nginx允许建立多个socket连接和一次性打开多个文件。这涉及到系统的文件描述符限制,可以通过`ulimit -n`查看当前最大文件描述符数量,如果需要增加,可以通过修改`/etc/security/...

    nginx-lua环境配置

    2、安装Luajit2.0.2 make make install 3、安装nginx export LUAJIT_LIB=/usr/local/lib export LUAJIT_INC=/usr/local/...需要把usr/local/lib中的liblua包映射到/lib目录下面。 ln -s /usr/local/lib/liblua* /lib

    高流量站点NGINX与PHP的优化

    为了确保网站的稳定性和响应速度,在高流量环境下优化NGINX与PHP-fpm配置至关重要。本文将详细介绍如何针对高流量站点进行NGINX与PHP-fpm的优化配置。 #### 一、理解高流量站点的需求 高流量站点通常指的是那些...

    Nginx环境搭建

    【Nginx环境搭建】 Nginx是一款高性能的HTTP和反向代理服务器,同时也支持IMAP/POP3/SMTP代理服务。Nginx以其高效、稳定性强和低资源消耗著称,尤其擅长处理高并发连接。相比传统的Apache服务器,Nginx采用的是异步...

    nginx安装环境及nginx_1.18.0安装包

    在本主题中,我们将详细探讨Nginx的安装环境以及如何安装`nginx_1.18.0`版本。 首先,让我们了解必要的安装环境。在Linux系统上安装Nginx,通常需要以下组件: 1. **GCC (GNU Compiler Collection)**:GCC是用于...

    awk测试从nginx查询qps的测试日志.log

    awk测试从nginx查询qps的测试日志

    window下nginx配置

    在正式安装Nginx之前,需要准备以下环境: 1. **操作系统**:Windows Server 2016 或更高版本。 2. **硬件资源**:至少4GB内存,双核CPU。 3. **软件环境**:安装最新版的Git Bash(用于执行命令行操作),以及其他...

    海康威视摄像头web端显示方案(Nginx环境测试)

    `start.bat`可能包含了运行Nginx可执行文件(`nginx.exe`)的命令,而`stop.bat`可能包含停止服务的命令,例如发送一个特定信号到Nginx进程。 5. **RunHiddenConsole.exe**: - 这可能是一个辅助程序,用于在后台...

    https通信nginx反向代理443端口

    这通常可以通过Let's Encrypt这样的免费证书颁发机构获取,或者自签发证书(仅用于测试环境)。生成的文件通常为`server.crt`(公钥证书)和`server.key`(私钥)。 2. **编辑Nginx配置文件**:打开Nginx的配置文件...

Global site tag (gtag.js) - Google Analytics