lua腳本中獲取nginx重定向后地址問題

問題描述

原配置

server{
  listen 80;
  rewrite /test/(.*) /dev/$1 last;
  location ^~/dev{
         access_by_lua_file '/opt/lua/bin/ap.lua';
         proxy_pass  http://192.168.143.28:80;
}
  • 期望實(shí)現(xiàn)內(nèi)容:把請(qǐng)求過來的 /test 替換成 /dev ,并路由到下發(fā)攔截location檩帐,通過ap.lua腳本把替換后的url請(qǐng)求到一個(gè)代理服務(wù)串塑,代理服務(wù)進(jìn)行一些過濾后轉(zhuǎn)發(fā)后下方 proxy_pass.
  • 實(shí)際結(jié)果:把請(qǐng)求過來的 /test 替換成 /dev 案站,并路由到下發(fā)攔截location,可是通過ap.lua 中的ngx.var.request_uri 取到的還是原來的/test予弧。

排查步驟

1.查看nginx文檔:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

圖片.png

last:rewrite后重新用更改后的url 匹配下location。與我們已命中 /dev 的現(xiàn)象想吻合湖饱。但是命中l(wèi)ua腳本后掖蛤,ngx.var.request_uri 取到的還是原地址。
2.查看資料:
圖片.png

得知應(yīng)用 ngx.var.uri獲取rewrite后的uri井厌,但不懈怠uri中的參數(shù)蚓庭。需自己拼接

更改后腳本

  local rewriteUri = ngx.var.uri

        local httpUri = ngx.var.request_uri
        ngx.log(ngx.INFO, 'ngx.var.request_uri '..rawUri..'\nngx.var.uri:'..rewriteUri)
        local equal_pos,_ = string.find(rawUri,rewriteUri)
        -- rewrite過
        if equal_pos == nil or equal_pos ~= 1 then
                ngx.log(ngx.INFO, 'already rewrite!')
                httpUri=rewriteUri
                -- 獲取uri中攜帶的參數(shù)
                local params_pos, _ = string.find(rawUri, '?')
                if params_pos ~= nil and params_pos > 0 then
                        local params = string.sub(rawUri,params_pos)
                        httpUri = rewriteUri..params
                end
        end

        ngx.log(ngx.INFO, 'httpUri '..httpUri)

查看資料:
https://www.cnblogs.com/mikeluwen/p/7116967.html
http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市仅仆,隨后出現(xiàn)的幾起案子器赞,更是在濱河造成了極大的恐慌,老刑警劉巖墓拜,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件港柜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡咳榜,警方通過查閱死者的電腦和手機(jī)夏醉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涌韩,“玉大人畔柔,你說我怎么就攤上這事∶潮玻” “怎么了释树?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)擎淤。 經(jīng)常有香客問我奢啥,道長(zhǎng),這世上最難降的妖魔是什么嘴拢? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任桩盲,我火速辦了婚禮,結(jié)果婚禮上席吴,老公的妹妹穿的比我還像新娘赌结。我一直安慰自己捞蛋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布柬姚。 她就那樣靜靜地躺著拟杉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪量承。 梳的紋絲不亂的頭發(fā)上搬设,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音撕捍,去河邊找鬼拿穴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛忧风,可吹牛的內(nèi)容都是我干的默色。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼狮腿,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼腿宰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蚤霞,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤酗失,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后昧绣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體规肴,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年夜畴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拖刃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贪绘,死狀恐怖兑牡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情税灌,我是刑警寧澤均函,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站菱涤,受9級(jí)特大地震影響苞也,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜粘秆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一如迟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦殷勘、人聲如沸此再。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽输拇。三九已至,卻和暖如春贤斜,著一層夾襖步出監(jiān)牢的瞬間淳附,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工蠢古, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人别凹。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓草讶,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親炉菲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子堕战,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容