Nginx进行流量copy到测试环境

摘要:
Nginx将流量复制到测试环境。LeaveaComment经常遇到测试环境需要一些数据。当然,您可以自己复制数据,但将用户请求从正式环境复制到测试环境更方便、更好。依赖模块lua-nginx模块,ngx_devel_Kit,headers更多的nginx module可以在github上找到。作者是中国著名的nginx开发者agentz。
Nginx进行流量copy到测试环境

四月 1, 2012by风的尾巴·Leave a Comment

经常会遇到测试环境需要一些数据,当然你可以自己仿造数据,但是更方便和更好的做法是,将来自正式环境的用户请求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进行流量copy到测试环境》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OC语言·笔记二SPark SQL 从 DB 读取数据方法和方式 scala下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Debian 环境安装新版 nginx

在 Debian 系统中,我们可以通过 apt-get 安装系统自带的 nginx,这样安装的 nginx 版本略旧。Nginx 官网提供了一些编辑绎好的 deb 安装包,我们只需更新安装源,就可以通过 apt-get 来安装最新的稳定版 Nginx 了。  加载安装源并导入key $ echo deb http://nginx.org/packages...

lnmp使用socket方式连接nginx优化php-fpm性能

lnmp使用socket方式连接nginx优化php-fpm性能 Nginx连接fastcgi的方式有2种:TCP和unix domain socket 什么是Unix domain socket?—— 维基百科 Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。与管道相比,Un...

RuoYi(若依)前后端分离版本,windows下部署(nginx)

摘自:https://blog.csdn.net/yueyekkx/article/details/105505490 上一篇用了tomcat部署(https://blog.csdn.net/yueyekkx/article/details/105491363),还是觉得nginx是王道话不多说开始:还是windows下部署:nginx jar包 前端:1...

CentOS+Nginx+PHP+Mysql 服务器配置

[利用yum命令配置、升级所需程序库] # sudo -s# LANG=C# yum -y install gcc gcc-c++ autoconf #yum -y install make //如果不安装make,那么cmake的时候会出问题 # yum -y install cmake # yum -y install bison 接下来最好手动编译...

nginx无法启动: libpcre.so.1/libpcre.so.0: cannot open shared object file解决办法

NGINX启动时提示错误: /usr/local/nginx/sbin/nginx -t/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or direct...

转:nginx+CGI/FASTCGI

简介版: 1.fastcgi与cgi区别:fastcgi通过线程来响应请求,而cgi对每个请求生成一个进程。 2.典型nginx数据传输过程:user->nginx->本地socket(请求传输)->fastcgi(即进程管理器)->cgi进程。 转(感谢下面两位同学): http://blog.csdn.NET/chenjh213...