鍍金池/ 問(wèn)答/數(shù)據(jù)分析&挖掘  Linux  網(wǎng)絡(luò)安全/ nginx自帶變量只要其中一部分怎么辦?

nginx自帶變量只要其中一部分怎么辦?

各位大蝦好!小蝦有事相求

假設(shè)我有一個(gè)$arg,arg里面有一個(gè)字段是state,現(xiàn)在$arg_state取到的值是:/http%3A%2F%2Fdvlshop.lechange.com%2Fproduct-79.html

現(xiàn)在我希望獲取http%3A%2F%2Fdvlshop.lechange.com%2Fproduct-79.html (不要前面的反斜杠)  或者是 /product-79.html?。ú灰虚g的網(wǎng)站)   請(qǐng)問(wèn)應(yīng)該怎么寫(xiě)?

回答
編輯回答
乞許

nginx不做邏輯相關(guān)的業(yè)務(wù),你的需求直接用nginx無(wú)法實(shí)現(xiàn)。改用lua吧

2017年10月22日 03:39
編輯回答
爛人

雖然不知道你要干嘛,但是你想獲取的這個(gè)值,原生nginx確實(shí)做不到,像上一位答主說(shuō)的,nginx不做業(yè)務(wù)相關(guān)邏輯,如果你非要做不可, 在你現(xiàn)有的nginx上安裝 lua_module或者直接換成openresty,用lua去實(shí)現(xiàn)這塊的邏輯。

2018年6月2日 03:10
編輯回答
久礙你

謝邀!
首先恭喜您已經(jīng)解決了該問(wèn)題!白天忙于nextjs + react + 。。。 重構(gòu)項(xiàng)目,沒(méi)來(lái)得及看!真是抱歉!要想回答該問(wèn)題,就不得不說(shuō)一說(shuō)在瀏覽器中輸入一個(gè)URL后都發(fā)生了什么?以下是一個(gè)大概流程:

  1. 瀏覽器向DNS服務(wù)器查找輸入U(xiǎn)RL對(duì)應(yīng)的IP地址;
  2. DNS服務(wù)器返回網(wǎng)站的IP地址;
  3. 瀏覽器根據(jù)IP地址與目標(biāo)web服務(wù)器建立TCP連接;
  4. 發(fā)送HTTP請(qǐng)求;
  5. 服務(wù)器處理請(qǐng)求;
  6. 返回響應(yīng)結(jié)果;
  7. 關(guān)閉TCP連接;
  8. 瀏覽器解析HTML;
  9. 瀏覽器布局渲染;

Nginx 是一個(gè)高性能的HTTP和反向代理web服務(wù)器,而您在http。。。 前面加上一個(gè)/,DNS解析不到對(duì)應(yīng)的IP,更不要說(shuō)建立TCP連接了,所以您在http。。。 前面加上一個(gè)/根本到不了nginx這一步。假設(shè)真能到nginx這一步,nginx是可以通過(guò)正則匹配,重寫(xiě)路由的!

2017年11月6日 03:00