当测试环境需要一些数据时,除了仿造一些数据外,更方便和更好的做法是,将来自正式环境的用户请求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域没有给出,大家依照自己的配置即可。
相关推荐
有时需要进行并发测试,需要排除本地机器等环境问题,可以使用web服务器NGINX的流量拷贝方式把请求进行翻倍,从而达到并发目的
流量带宽请求状态统计 ngx_req_status用来展示nginx请求状态信息,类似于apache的status,nginx自带的模块只能显示连接数等等信息,我们并不能知道到底有哪些请求、以及各url域名所消耗的带宽是多少。ngx_req_status...
总结来说,内网Nginx全套安装环境的搭建涉及了从安装GCC到配置Nginx的一系列步骤。正确配置和管理Nginx,可以为内网提供高效、安全的Web服务。在实际操作中,应根据具体需求进行调整,确保Nginx与内部网络架构的无缝...
通过对nginx 四层代理和SLB负载均衡功能的测试,我们可以了解到其在实际应用中的优缺点和配置方法。 一、nginx 四层代理测试 nginx 四层代理是指nginx 服务器作为反向代理服务器,将客户端的请求转发到后端服务器...
现在,你应该可以通过访问服务器的IP地址来测试Nginx是否已成功运行。 在实际操作中,可能会遇到各种系统和配置特定的问题,因此,提供的安装教程至关重要。它应该详细说明了每个步骤,包括任何可能的错误处理和...
bara是一个基于Nginx和Docker的多版本程序同时在线的简易测试环境,只能单机使用,并且只是一个PoC而已,仅供参考。简单来说,就是使用Nginx做反向代理,代理到后面的Docker容器,bara能动态创建Nignx配置文件,重启...
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”描述了如何构建一个基于Nginx的HLS(HTTP Live Streaming)多码率测试环境。这个环境利用了Nginx的RTMP模块以及nginx-http-flv-module,以便实现流媒体的实时传输...
### iframe嵌入链接本地环境正常,正式环境重定向到登录问题解决方案 #### 问题背景 在开发过程中,经常需要将一个网页嵌入到另一个网页中,通常的做法是使用HTML中的`<iframe>`标签来实现这一功能。但在实际操作中...
2.1.1 内网带宽:测试环境中,内网带宽为1Gbps,确保网络传输不会成为性能瓶颈。 2.1.2 网络拓扑示意:采用典型的前端Nginx作为反向代理,后端多台Tomcat服务器的负载均衡架构,如图所示: (此处应有网络拓扑图,但...
在进行性能测试时,需要确保系统和Nginx允许建立多个socket连接和一次性打开多个文件。这涉及到系统的文件描述符限制,可以通过`ulimit -n`查看当前最大文件描述符数量,如果需要增加,可以通过修改`/etc/security/...
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-fpm配置至关重要。本文将详细介绍如何针对高流量站点进行NGINX与PHP-fpm的优化配置。 #### 一、理解高流量站点的需求 高流量站点通常指的是那些...
【Nginx环境搭建】 Nginx是一款高性能的HTTP和反向代理服务器,同时也支持IMAP/POP3/SMTP代理服务。Nginx以其高效、稳定性强和低资源消耗著称,尤其擅长处理高并发连接。相比传统的Apache服务器,Nginx采用的是异步...
在本主题中,我们将详细探讨Nginx的安装环境以及如何安装`nginx_1.18.0`版本。 首先,让我们了解必要的安装环境。在Linux系统上安装Nginx,通常需要以下组件: 1. **GCC (GNU Compiler Collection)**:GCC是用于...
awk测试从nginx查询qps的测试日志
`start.bat`可能包含了运行Nginx可执行文件(`nginx.exe`)的命令,而`stop.bat`可能包含停止服务的命令,例如发送一个特定信号到Nginx进程。 5. **RunHiddenConsole.exe**: - 这可能是一个辅助程序,用于在后台...
这通常可以通过Let's Encrypt这样的免费证书颁发机构获取,或者自签发证书(仅用于测试环境)。生成的文件通常为`server.crt`(公钥证书)和`server.key`(私钥)。 2. **编辑Nginx配置文件**:打开Nginx的配置文件...
TCPCopy是一款强大的在线压力测试工具,主要用于模拟真实线上环境,帮助开发者在程序未正式上线前发现潜在的性能问题和bug。与传统压力测试工具,如abench相比,TCPCopy的优势在于其实时性和真实性。它能近乎无损地...