0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Nginx軟件location目錄匹配詳解

馬哥Linux運維 ? 來源:博客園 ? 作者:lvzhenjiang ? 2021-10-08 17:10 ? 次閱讀

Nginx作為一個輕量級的,高性能的web服務軟件,因其占有內存少,并發(fā)能力強的特點,而廣受歡迎和使用。國內很多大型互聯(lián)網(wǎng)公司也對Nginx很是青睞。

像BAT(百度,阿里和騰訊),TMD(頭條,美團和滴滴)等等。使用過Nginx的同學都知道,你只需要按需求準確的更改好配置啟動,那么就可以優(yōu)雅的訪問它了。

所以說Nginx對配置文件的很是看中呢,這就要求我們更改配置文件時一定要再三確認,要不然可能因為疏忽而引發(fā)慘案呢?

真實案例,就因為在配置時,少些了一個字符“/”,就造成訪問不通報錯,因而接到投訴。那么是怎么引起的呢?原因就是:Nginx在配置proxy_pass代理轉接時,少些“/”字符造成的。有同學就有疑問,加不加“/”,區(qū)別真的那么大嗎?我們帶著這個疑問,來探究下這個問題。

location目錄匹配詳解

nginx每個location都是一個匹配目錄,nginx的策略是:訪問請求來時,會對訪問地址進行解析,從上到下逐個匹配,匹配上就執(zhí)行對應location大括號中的策略,并根據(jù)策略對請求作出相應。依訪問地址:http://www.wandouduoduo.com/wddd/index.html為例,nginx配置如下:

location /wddd/ { proxy_connect_timeout 18000; ##修改成半個小時 proxy_send_timeout 18000; proxy_read_timeout 18000; proxy_pass http://127.0.0.1:8080; }

那訪問時就會匹配這個location,從而把請求代理轉發(fā)到本機的8080Tomcat服務中,Tomcat相應后,信息原路返回??偨Y:location如果沒有“/”時,請求就可以模糊匹配以字符串開頭的所有字符串,而有“/”時,只能精確匹配字符本身。

下面舉個例子說明:配置location /wandou可以匹配/wandoudouduo請求,也可以匹配/wandou*/duoduo等等,只要以wandou開頭的目錄都可以匹配到。而location /wandou/必須精確匹配/wandou/這個目錄的請求,不能匹配/wandouduoduo/或/wandou*/duoduo等請求。

proxy_pass有無“/”的四種區(qū)別探究

訪問地址都是以:http://www.wandouduoduo.com/wddd/index.html 為例。請求都匹配目錄/wddd/

第一種:加“/”

location /wddd/ { proxy_pass http://127.0.0.1:8080/; }

測試結果,請求被代理跳轉到:http://127.0.0.1:8080/index.html

第二種: 不加“/”

location /wddd/ { proxy_pass http://127.0.0.1:8080; }

測試結果,請求被代理跳轉到:http://127.0.0.1:8080/wddd/index.html

第三種: 增加目錄加“/”

location /wddd/ { proxy_pass http://127.0.0.1:8080/sun/; }

測試結果,請求被代理跳轉到:http://127.0.0.1:8080/sun/index.html

第四種:增加目錄不加“/”

location /wddd/ { proxy_pass http://127.0.0.1:8080/sun; }

測試結果,請求被代理跳轉到:http://127.0.0.1:8080/sunindex.html

總結

location目錄后加“/”,只能匹配目錄,不加“/”不僅可以匹配目錄還對目錄進行模糊匹配。而proxy_pass無論加不加“/”,代理跳轉地址都直接拼接。為了加深大家印象可以用下面的配置實驗測試下:

server { listen 80; server_name localhost; # http://localhost/wddd01/xxx -》 http://localhost:8080/wddd01/xxx location /wddd01/ { proxy_pass http://localhost:8080; } # http://localhost/wddd02/xxx -》 http://localhost:8080/xxx location /wddd02/ { proxy_pass http://localhost:8080/;

} # http://localhost/wddd03/xxx -》 http://localhost:8080/wddd03*/xxx location /wddd03 { proxy_pass http://localhost:8080;

} # http://localhost/wddd04/xxx -》 http://localhost:8080//xxx,請注意這里的雙斜線,好好分析一下。 location /wddd04 { proxy_pass http://localhost:8080/;

} # http://localhost/wddd05/xxx -》 http://localhost:8080/hahaxxx,請注意這里的haha和xxx之間沒有斜杠,分析一下原因。 location /wddd05/ { proxy_pass http://localhost:8080/haha;

} # http://localhost/api6/xxx -》 http://localhost:8080/haha/xxx location /wddd06/ { proxy_pass http://localhost:8080/haha/;

} # http://localhost/wddd07/xxx -》 http://localhost:8080/haha/xxx location /wddd07 { proxy_pass http://localhost:8080/haha; }

# http://localhost/wddd08/xxx -》 http://localhost:8080/haha//xxx,請注意這里的雙斜杠。 location /wddd08 { proxy_pass http://localhost:8080/haha/; } }

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1265

    瀏覽量

    69530
  • 軟件
    +關注

    關注

    69

    文章

    4970

    瀏覽量

    87717
  • nginx
    +關注

    關注

    0

    文章

    151

    瀏覽量

    12189

原文標題:總結

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    nginx+lua+redis實現(xiàn)灰度發(fā)布

    作者:馬仁喜 前言: 授人以魚不如授人以漁 .先學會用,在學原理,在學創(chuàng)造,可能一輩子用不到這種能力,但是不能不具備這種能力。這篇文章主要是沉淀使用nginx+lua+redis實現(xiàn)灰度,當我們具備
    的頭像 發(fā)表于 12-17 10:01 ?93次閱讀

    Nginx代理轉發(fā)實戰(zhàn):零基礎掌握服務器流量分發(fā)技巧

    的url中就會帶上location中的匹配路徑。 ???? 假設下面四種 Nginx配置,都用?http://192.168.1.8/proxy/test.html?進行訪問: 第一種:
    的頭像 發(fā)表于 12-09 12:28 ?591次閱讀

    Nginx日常運維方法Linux版

    ,Nginx安裝目錄? ? whereis nginx ? 如圖: 執(zhí)行目錄:/usr/sbin/nginx 模塊所在
    的頭像 發(fā)表于 12-06 16:38 ?174次閱讀
    <b class='flag-5'>Nginx</b>日常運維方法Linux版

    詳解nginx中的正則表達式

    前言,我這里驗證的nginx-v1.23.2單機環(huán)境下的nginx中的正則表達式、location路徑匹配規(guī)則和優(yōu)先級。
    的頭像 發(fā)表于 12-03 09:59 ?230次閱讀
    <b class='flag-5'>詳解</b><b class='flag-5'>nginx</b>中的正則表達式

    確保網(wǎng)站無縫運行:Keepalived高可用與Nginx集成實戰(zhàn)

    目錄 keepalived高可用(nginx) keepalived簡介 keepalived的重要功能 keepalived高可用架構圖 keepalived工作原理描述 keepalived實現(xiàn)
    的頭像 發(fā)表于 11-27 09:08 ?524次閱讀
    確保網(wǎng)站無縫運行:Keepalived高可用與<b class='flag-5'>Nginx</b>集成實戰(zhàn)

    nginx隱藏版本號與WEB服務器信息

    nginx不僅可以隱藏版本信息,還支持自定義web服務器信息 先看看最終的隱藏結果吧 具體怎么實現(xiàn)呢,其實也很簡單,請往下看 1 官網(wǎng)下載最新穩(wěn)定版 wget http://nginx
    的頭像 發(fā)表于 11-22 10:25 ?187次閱讀
    <b class='flag-5'>nginx</b>隱藏版本號與WEB服務器信息

    nginx負載均衡配置介紹

    目錄 nginx負載均衡 nginx負載均衡介紹 反向代理與負載均衡 nginx負載均衡配置 Keepalived高可用nginx負載均衡器
    的頭像 發(fā)表于 11-10 13:39 ?268次閱讀
    <b class='flag-5'>nginx</b>負載均衡配置介紹

    nginx中的正則表達式和location路徑匹配指南

    前言,我這里驗證的nginx-v1.23.2單機環(huán)境下的nginx中的正則表達式、location路徑匹配規(guī)則和優(yōu)先級。
    的頭像 發(fā)表于 09-29 16:02 ?849次閱讀
    <b class='flag-5'>nginx</b>中的正則表達式和<b class='flag-5'>location</b>路徑<b class='flag-5'>匹配</b>指南

    Jtti:美國VPS開啟nginx狀態(tài)監(jiān)控,查看web服務器的并發(fā)連接數(shù)

    |htaccess|asp|aspx|jsp|asa|mdb)$ { deny all; }location ~ ^/Nginxstatus/ {stub_status on;access_log off;}上面的代碼紅色部分為nginx的監(jiān)控代?。 2、重
    的頭像 發(fā)表于 08-26 15:42 ?304次閱讀

    nginx重啟命令linux步驟是什么?

      1、驗證nginx配置文件是否正確   方法一:進入nginx安裝目錄sbin下,輸入命令./nginx -t   看到如下顯示nginx
    發(fā)表于 07-11 17:13

    nginx重啟命令linux步驟是什么?

      1、驗證nginx配置文件是否正確   方法一:進入nginx安裝目錄sbin下,輸入命令./nginx -t   看到如下顯示nginx
    發(fā)表于 07-10 16:40

    RT-Thread專業(yè)版入選《2023年上海市工業(yè)軟件推薦目錄

    在推進制造業(yè)數(shù)字化轉型的關鍵時刻,上海市發(fā)布了《2023年上海市工業(yè)軟件推薦目錄》,旨在落實《上海市促進工業(yè)軟件高質量發(fā)展行動計劃(2021-2023年)》,聚焦重點行業(yè)和領域痛點問題,提升關鍵
    的頭像 發(fā)表于 04-02 08:34 ?489次閱讀
    RT-Thread專業(yè)版入選《2023年上海市工業(yè)<b class='flag-5'>軟件</b>推薦<b class='flag-5'>目錄</b>》

    芯和ChannelExpert高速通道分析軟件入選2023工業(yè)軟件推薦目錄

    繼2022年三款EDA產(chǎn)品入選工業(yè)軟件推薦目錄之后,芯和半導體又一款EDA——ChannelExpert高速通道分析軟件也成功入選了2023年上海市工業(yè)軟件推薦
    的頭像 發(fā)表于 03-14 17:22 ?611次閱讀
    芯和ChannelExpert高速通道分析<b class='flag-5'>軟件</b>入選2023工業(yè)<b class='flag-5'>軟件</b>推薦<b class='flag-5'>目錄</b>

    積鼎科技兩款國產(chǎn)流體仿真軟件入選《上海市工業(yè)軟件推廣目錄》!

    ,《2023年上海市工業(yè)軟件推薦目錄》正式發(fā)布。 由積鼎科技自主研發(fā)的多介質多相流分析軟件成功入選。由此,積鼎科技的兩款核心產(chǎn)品, 通用流體仿真軟件和多介質多相流分析
    的頭像 發(fā)表于 03-08 16:07 ?435次閱讀

    Apache服務器和Nginx服務器

    Apache和Nginx都是常見的開源Web服務器軟件,它們用于處理HTTP請求并提供網(wǎng)站和應用程序的服務。下面是對Apache和Nginx的一些基本特點的比較: 一、Apache HTTP
    的頭像 發(fā)表于 01-22 16:48 ?579次閱讀