国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

代理 - 一個nginx需求,訪問web服務(wù)時,若用戶為測試用戶則轉(zhuǎn)發(fā)到web服務(wù)的測試版本
phpcn_u1582
phpcn_u1582 2017-05-16 17:26:13
0
1
875

需求細(xì)節(jié):
一個web服務(wù),分為正式伺服器和測試伺服器,透過nginx代理,用戶先造訪時會提交登入請求(post方式)到nginx上,透過nginx判斷登入用戶是否為測試用戶,若為測試用戶則轉(zhuǎn)發(fā)測試伺服器。

碰到的問題:
1.判斷用戶已經(jīng)實現(xiàn)了,怎麼實現(xiàn)後續(xù)請求都發(fā)到同一臺伺服器?想透過保存一個變數(shù)來實現(xiàn),但是nginx變數(shù)是不能跨請求存在的,能否透過文件讀寫來保存變數(shù)? 。

2.跳轉(zhuǎn)方式如何實現(xiàn)?
下面是我的部分程式碼
首先造訪 127.0.0.1/smdb

        location /smdb {
        default_type 'text/plain';
        set $jump 0;
        access_log /var/log/nginx/smdb_access.log smdb;
        error_log /var/log/nginx/error.log;
        log_subrequest on;
        lua_need_request_body on;
                client_max_body_size 50k;
                client_body_buffer_size 50k;
        content_by_lua '
            ngx.req.read_body()
            local args, err = ngx.req.get_post_args()
            if not args then
            ngx.say("failed to get post args: ", err)
            return
            end
            for key, val in pairs(args) do
            if val == "test" then
                ngx.var.jump = "1"
            end
            end
            ngx.exec("/tosmdb")
        ';
    }

    location /tosmdb {
        default_type 'text/plain';
        echo $jump;#注釋掉下面,這里顯示為1即判斷出了用戶
        if ($jump = "1"){
            proxy_pass http://smdbtest;
        }
        if ($jump = "0"){
            proxy_pass http://smdb;
        }
    }

#
phpcn_u1582
phpcn_u1582

全部回覆(1)
迷茫

你需要把使用者登入後的憑證都放到 cookie 裡面,然後就方便做驗算了。

詳見 https://github.com/cloudflare/lua-resty-cookie 裡面的範(fàn)例。

跳轉(zhuǎn)的方式用 proxy_pass 應(yīng)該沒問題,挺好的。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板