最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nginx中斜杠(‘/‘)的具體使用

 更新時(shí)間:2023年10月17日 09:39:26   作者:皮卡丘的情緒  
在Nginx配置的過(guò)程中,斜杠(/)經(jīng)常使用到,它們不僅可以區(qū)分不同的路徑,還有其他的作用,本文就詳細(xì)的介紹了nginx中斜杠(‘/‘)的具體使用,感興趣的可以了解一下,感興趣的可以了解一下

一、Location

nginx每個(gè)location都是一個(gè)匹配目錄,nginx的策略是:訪問(wèn)請(qǐng)求來(lái)時(shí),會(huì)對(duì)訪問(wèn)地址進(jìn)行解析,從上到下逐個(gè)匹配,匹配上就執(zhí)行對(duì)應(yīng)location大括號(hào)中的策略,并根據(jù)策略對(duì)請(qǐng)求作出相應(yīng)。
依訪問(wèn)地址:http://www.wandouduoduo.com/wddd/index.html為例,nginx配置如下:

location /wddd/ { 
  proxy_connect_timeout 18000; ##修改成半個(gè)小時(shí) 
  proxy_send_timeout 18000; 
  proxy_read_timeout 18000; 
  proxy_pass http://127.0.0.1:8080; 
}

那訪問(wèn)時(shí)就會(huì)匹配這個(gè)location,從而把請(qǐng)求代理轉(zhuǎn)發(fā)到本機(jī)的8080端口的Tomcat服務(wù)中,Tomcat響應(yīng)后,信息原路返回。

1.1 location沒(méi)有’/’

請(qǐng)求就可以模糊匹配以字符串開(kāi)頭的所有字符串

1.2 location有’/’

只能精確匹配字符本身。

舉例: 配置 location /wandou 可以匹配 /wandoudouduo 請(qǐng)求,也可以匹配 /wandou*/duoduo
等等,只要以 wandou 開(kāi)頭的目錄都可以匹配到。而 location /wandou/ 必須精確匹配 /wandou/ 這個(gè)目錄的請(qǐng)求,
不能匹配 /wandouduoduo/ 或 /wandou*/duoduo 等請(qǐng)求。

二、URL自動(dòng)加’/’

有時(shí)候訪問(wèn)的地址要求后面以 / 結(jié)尾,如果用戶忘記輸入 /,Nginx 就會(huì)自動(dòng)加上 /。
通過(guò)一個(gè)例子來(lái)演示問(wèn)題:

server {
	listen	80;
	server_name localhost;
	location / {
		root html;
		index index.html;
	}
}

要想訪問(wèn)上述資源,很簡(jiǎn)單,只需要通過(guò) http://192.168.200.133 直接就能訪問(wèn),地址后面不需要加 /,但是如果將上述的配置修改為如下內(nèi)容:

server {
	listen	80;
	server_name localhost;
	location /frx {
		root html;
		index index.html;
	}
}

這個(gè)時(shí)候,要想訪問(wèn)上述資源,按照上述的訪問(wèn)方式,我們可以通過(guò) http://192.168.200.133/frx/ 來(lái)訪問(wèn),但是如果地址后面不加斜杠,如 http://192.168.200.133/frx,頁(yè)面就會(huì)出問(wèn)題。如果不加斜杠,Nginx 服務(wù)器內(nèi)部會(huì)自動(dòng)做一個(gè) 301 的重定向,重定向的地址會(huì)有一個(gè)指令叫 server_name_in_redirect 來(lái)決定重定向的地址:

  • 如果該指令為 on重定向的地址為:http://server_name/目錄名/
  • 如果該指令為 off重定向的地址為:http://原URL中的域名/目錄名/

所以就拿剛才的地址來(lái)說(shuō),訪問(wèn) http://192.168.200.133/frx 如果不加斜杠,那么按照上述規(guī)則:

  • 如果指令 server_name_in_redirect 為 on,則 301 重定向地址變?yōu)?http://localhost/frx/,IP 發(fā)生改變,地址出現(xiàn)了問(wèn)題
  • 如果指令 server_name_in_redirect 為 off,則 301 重定向地址變?yōu)?http://192.168.200.133/frx/。這個(gè)符合我們的期望

注意 server_name_in_redirect 指令在 Nginx 的 0.8.48 版本之前默認(rèn)都是 on,之后改成了 off,所以現(xiàn)在我們這個(gè)版本不需要考慮這個(gè)問(wèn)題,但是如果是 0.8.48 以前的版本并且 server_name_in_redirect 設(shè)置為 on,我們?nèi)绾瓮ㄟ^(guò) Rewrite 來(lái)解決這個(gè)問(wèn)題?
解決方案
我們可以使用 Rewrite 功能為末尾沒(méi)有斜杠的 URL 自動(dòng)添加一個(gè)斜杠

server {
	listen	80;
	server_name localhost;
	server_name_in_redirect on;
	location /frx {
		if (-d $request_filename){   # 如果請(qǐng)求的資源目錄存在
			rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent; # $2 獲取第二個(gè)括號(hào)的值:/
		}
	}
}

$1 是第一個(gè)括號(hào)的值,$2 是第二個(gè)括號(hào)的值。

三、proxy_pass

這里將發(fā)送 http://192.168.199.27/frx/xu 請(qǐng)求。

3.1 不增加目錄

案例localtionproxy_pass匹配
1/frxhttp://192.168.199.27/frx/xu
2/frx/http://192.168.199.27/frx/xu
3/frxhttp://192.168.199.27///xu
4/frx/http://192.168.199.27//xu

若proxy_pass 后加’/',代表去除掉請(qǐng)求和 location 的匹配的字符串
不加 ’ / ’ 則追加全部請(qǐng)求到地址后面。

3.2 增加目錄

案例localtionproxy_pass匹配
1/frxhttp://192.168.199.27/bing/bing/xu
2/frx/http://192.168.199.27/bing/bingxu
3/frxhttp://192.168.199.27/bing//bing//xu
4/frx/http://192.168.199.27/bing//bing/xu

簡(jiǎn)而言之,就是如果proxy_pass后面有目錄,有沒(méi)有’/',Nginx都會(huì)將匹配 location 的內(nèi)容從請(qǐng)求路徑中剔除,然后將請(qǐng)求路徑剩余的字符串拼接到 proxy_pass 后生成新的請(qǐng)求路徑。

舉例:proxy_pass 的 ip:port 后接了字符串,因此將 location 的 /frx/ 從原請(qǐng)求路徑 /frx/xu
中剔除,變?yōu)?xu,然后將 xu 拼接到 http://192.168.1.48/bing 后生成了新請(qǐng)求,因此其他地址收到的請(qǐng)求就是
/bingxu。

四、root和alias

這兩個(gè)指令都可以來(lái)指定訪問(wèn)資源的路徑,那么這兩者之間的區(qū)別是什么?舉例說(shuō)明

  • /usr/local/nginx/html目錄下創(chuàng)建一個(gè) images 目錄,并在目錄下放入一張圖片 mv.png 圖片。然后進(jìn)入配置文件,添加如下內(nèi)容:
location /images {
    root /usr/local/nginx/html;
}

訪問(wèn)圖片的路徑為:http://192.168.91.200/images/mv.png如果是root,則請(qǐng)求為/usr/local/nginx/html/images/mv.png

location /images {
    alias /usr/local/nginx/html;
}

如果是alias,再次訪問(wèn)上述地址,頁(yè)面會(huì)出現(xiàn) 404 的錯(cuò)誤,查看錯(cuò)誤日志會(huì)發(fā)現(xiàn)是因?yàn)榈刂凡粚?duì),所以驗(yàn)證了:

  • root 的處理結(jié)果是:root 路徑 + location 路徑,location 路徑包括匹配后面的請(qǐng)求,即包括 /mv.png

/usr/local/nginx/html/images/mv.png

  • alias 的處理結(jié)果是:使用 alias 路徑替換 location 路徑

/usr/local/nginx/html/mv.png需要在 alias 后面路徑改為:

location /images {
    alias /usr/local/nginx/html/images;
}

如果 location 路徑是以 / 結(jié)尾,則 alias 也必須是以 / 結(jié)尾,root 沒(méi)有要求。
將上述配置修改為:

location /images/ {
    alias /usr/local/nginx/html/images;
}

訪問(wèn)就會(huì)出問(wèn)題,查看錯(cuò)誤日志還是路徑不對(duì),所以需要把 alias 后面加上 /

location /images/ {
    alias /usr/local/nginx/html/images/;
}

小結(jié):

  • root 的處理結(jié)果是: root 路徑 + location 路徑
  • alias 的處理結(jié)果是:使用 alias 路徑替換 location 路徑
  • alias 是一個(gè)目錄別名的定義,root 則是最上層目錄的含義
  • 如果 location 路徑是以 / 結(jié)尾,則 alias 也必須是以 / 結(jié)尾,root 沒(méi)有要求
    • alias 不支持 location 的 =

五、實(shí)例

通過(guò)nginx訪問(wèn) 127.0.0.1/api/test

  • location和proxy_pass都不加’/’
location /api {
    proxy_pass http://127.0.0.1:8888;
}

實(shí)際訪問(wèn)地址為127.0.0.1:8888/api/test

  • location加proxy_pass不加
location /api/ {
    proxy_pass http://127.0.0.1:8888;
}

實(shí)際訪問(wèn)地址為127.0.0.1:8888/api/test

  • location和proxy_pass都加
location /api/ {
    proxy_pass http://127.0.0.1:8888/;
}

實(shí)際訪問(wèn)地址為127.0.0.1:8888/test

  • location不加proxy_pass加
location /api {
    proxy_pass http://127.0.0.1:8888/;
}

實(shí)際訪問(wèn)地址為127.0.0.1:8888//test

總結(jié):只要是proxy_pass 端口后方加了斜杠的那么 location都會(huì)被替換不會(huì)加到實(shí)際訪問(wèn)路徑中,包括( proxy_pass http://127.0.0.1:8888/xxx,其實(shí)就是有目錄的情況)也算。

到此這篇關(guān)于nginx中斜杠(‘/‘)的具體使用的文章就介紹到這了,更多相關(guān)nginx 斜杠內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx隱藏版本號(hào)與網(wǎng)頁(yè)緩存時(shí)間的方法

    Nginx隱藏版本號(hào)與網(wǎng)頁(yè)緩存時(shí)間的方法

    這篇文章主要介紹了Nginx優(yōu)化之隱藏版本號(hào)與網(wǎng)頁(yè)緩存時(shí)間的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Nginx 流量鏡像使用的方法示例

    Nginx 流量鏡像使用的方法示例

    Nginx流量鏡像技術(shù)可以在不影響原始請(qǐng)求的情況下復(fù)制請(qǐng)求數(shù)據(jù),用于數(shù)據(jù)分析、安全監(jiān)控等方面,本文就來(lái)介紹一下Nginx 流量鏡像使用的方法示例,感興趣的可以了解一下
    2024-10-10
  • windows下nginx服務(wù)關(guān)不掉問(wèn)題解決

    windows下nginx服務(wù)關(guān)不掉問(wèn)題解決

    這篇文章主要給大家介紹了關(guān)于windows下nginx服務(wù)關(guān)不掉問(wèn)題解決的相關(guān)資料,nginx是一種網(wǎng)絡(luò)服務(wù)器,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • 分布式架構(gòu)中關(guān)于正向代理反向代理面試提問(wèn)

    分布式架構(gòu)中關(guān)于正向代理反向代理面試提問(wèn)

    這篇文章主要為大家介紹了分布式架構(gòu)中關(guān)于正向代理反向代理的面試提問(wèn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Nginx如何為靜態(tài)文件添加訪問(wèn)權(quán)限

    Nginx如何為靜態(tài)文件添加訪問(wèn)權(quán)限

    這篇文章主要介紹了Nginx如何為靜態(tài)文件添加訪問(wèn)權(quán)限問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Nginx域名轉(zhuǎn)發(fā)https訪問(wèn)的實(shí)現(xiàn)

    Nginx域名轉(zhuǎn)發(fā)https訪問(wèn)的實(shí)現(xiàn)

    這篇文章主要介紹了Nginx域名轉(zhuǎn)發(fā)https訪問(wèn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Nginx 配置視頻文件播放完全指南

    Nginx 配置視頻文件播放完全指南

    本文指導(dǎo)在Ubuntu上配置Nginx支持MP4視頻播放,涵蓋安裝、MIME類型設(shè)置、視頻格式轉(zhuǎn)換、權(quán)限配置及常見(jiàn)問(wèn)題排查,確保視頻可通過(guò)瀏覽器順利播放,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • Nexus使用nginx代理實(shí)現(xiàn)支持HTTPS協(xié)議

    Nexus使用nginx代理實(shí)現(xiàn)支持HTTPS協(xié)議

    這篇文章主要介紹了Nexus使用nginx代理實(shí)現(xiàn)支持HTTPS協(xié)議,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 通過(guò)nginx代理攔截請(qǐng)求進(jìn)行全局訪問(wèn)限制

    通過(guò)nginx代理攔截請(qǐng)求進(jìn)行全局訪問(wèn)限制

    這篇文章主要介紹了通過(guò)nginx代理攔截請(qǐng)求進(jìn)行全局訪問(wèn)限制,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 解決nginx:[emerg]?getpwnam(“nginx“)failed報(bào)錯(cuò)問(wèn)題

    解決nginx:[emerg]?getpwnam(“nginx“)failed報(bào)錯(cuò)問(wèn)題

    編譯安裝nginx時(shí),啟動(dòng)服務(wù)報(bào)錯(cuò)nginx:[emerg]getpwnam("nginx")failed,原因是沒(méi)有為nginx創(chuàng)建用戶,解決方法是創(chuàng)建一個(gè)nginx用戶,該用戶是你在編譯時(shí)指定的用戶
    2025-02-02

最新評(píng)論

贵州省| 乌海市| 阳西县| 乳山市| 兴隆县| 左云县| 湘潭市| 公安县| 满城县| 潞城市| 南昌县| 兴国县| 沛县| 含山县| 兴化市| 南宫市| 凤庆县| 梅河口市| 颍上县| 藁城市| 会同县| 通海县| 宁武县| 息烽县| 大埔区| 枣庄市| 西乌| 原阳县| 马尔康县| 山西省| 荥阳市| 尼木县| 镇沅| 温州市| 阳朔县| 双柏县| 黄龙县| 阳泉市| 唐海县| 海晏县| 贞丰县|