zoukankan      html  css  js  c++  java
  • tengine + lua 实现流量拷贝

    环境搭建参考地址: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;
    }
    

      

  • 相关阅读:
    需要学习的技术
    面试资料
    数据库设计三大范式
    java List 排序 Collections.sort() 对 List 排序
    hibernate的延迟加载
    索引失效原因总结
    mybatis调用oracle存储过程
    Android开发中需要注意哪些坑
    Intent在Activity之间传值的几种方式
    Android动画(Animations)
  • 原文地址:https://www.cnblogs.com/cp-miao/p/8253113.html
Copyright © 2011-2022 走看看