tengine + lua 实现流量拷贝
2024-10-20 06:30:01
环境搭建参考地址:http://www.cnblogs.com/cp-miao/p/7505910.html
cp.lua
local res1, res2, action
action = ngx.var.request_method
if action == "POST" then
arry = {method = ngx.HTTP_POST, body = ngx.req.read_body()}
else
arry = {method = ngx.HTTP_GET}
end if ngx.var.svr == "on" then
res1, res2 = ngx.location.capture_multi {
{ "/copynode" .. ngx.var.request_uri , arry},
}
else
ngx.exec("@hubnode")
end
ngx.exec("@hubnode")
cp.conf
upstream hubnode {
server 127.0.0.1:3001 weight=1;
} upstream cpnode {
server 127.0.0.1:9031;
} server {
listen 443;
server_name aa.cn;
ssl on;
ssl_certificate /etc/ssl/private/all_a.pem;
ssl_certificate_key /etc/ssl/private/all_a.pem; location ~* ^/copynode {
log_subrequest on;
rewrite ^/copynode(.*)$ $1 break;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://cpnode;
#access_log logs/test-upstream.log main;
} location @hubnode{
proxy_pass http://hubnode;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
} location / {
client_body_buffer_size 2m;
set $svr "on"; #开启或关闭copy功能
content_by_lua_file "/nas/config/tengine/lua/t.lua";
}
access_log /var/log/tengine/np.log access;
}
最新文章
- Oracle Flashback 闪回
- 生成格式化的json
- mybatis异常
- greensock的tween源码阅读笔记
- oracle交集,并集,差集
- HDOJ/HDU 2562 奇偶位互换(交换位置~)
- 你需要知道的九大排序算法【Python实现】之基数排序
- poj3461 Oulipo
- 使用spring框架中的组件发送邮件
- Nodejs搭建基于express的应用,使用脚手架工具--express-generator
- 《笨方法学Python》加分题35
- [Spark][Python]Spark Python 索引页
- 更换title上的ico
- React兄弟、父子元素之间的通信
- 17.在自适应屏幕里通过JQ来获取宽高并赋给需要的
- 廖雪峰Java2面向对象编程-4抽象类和接口-1抽象类
- #include<;algorithm>;里的函数
- SVN目录权限设置
- springboot2.0整合jpa
- jQuery对象和DOM对象之间的转换