文章詳情頁(yè)
nginx多l(xiāng)ocation配置實(shí)例代碼
瀏覽:119日期:2023-06-15 15:23:26
目錄
- 前言
- nginx常用正則表達(dá)式
- 實(shí)測(cè)
- 備注
- 總結(jié)
前言
nginx server下配置多個(gè)location根據(jù)路徑匹的不同做不同的處理。
nginx常用正則表達(dá)式
語(yǔ)法規(guī)則: location [=|~|~*|^~] /uri/ { … }
- = 開頭表示:精確匹配。
- ^~ 開頭表示:區(qū)分大小寫以什么開頭。
- ~ 開頭表示:區(qū)分大小寫的正則匹配。
- ~* 開頭表示:不區(qū)分大小寫的正則匹配。
- !~ 和!~*分別表示:區(qū)分大小寫 不匹配 及不區(qū)分大小寫 不匹配的正則匹配。
- / 表示:通用匹配,任何請(qǐng)求都會(huì)匹配到。
多個(gè)location配置的情況下匹配順序?yàn)椋ㄎ打?yàn)證):
首先匹配 =,其次匹配^~, 其次是按文件中順序的正則匹配,最后是交給 / 通用匹配。當(dāng)有匹配成功時(shí)候,停止匹配,按當(dāng)前匹配規(guī)則處理請(qǐng)求。
實(shí)測(cè)
server { listen 80; listen [::]:80; server_name location.test.com; access_log /var/log/nginx/location.host.access.log main; #*********************注意多個(gè)location通常按精確的放前面,模糊大范圍的放后面,nginx先找= ****************************** location = /login.html {#精確匹配 /login root /usr/share/nginx/html/test-equal;#請(qǐng)求/login.html相當(dāng)于尋找資源/usr/share/nginx/html/test-equal/login.html } location ^~ /prefix/ {#區(qū)分大小寫且以/prefix/開頭 root /usr/share/nginx/html/test-prefix;#root代表根目錄,請(qǐng)求/prefix/prefix.html相當(dāng)于尋找資源/usr/share/nginx/html/test-prefix/prefix/prefix.html } location ~ \.(png|jpg)$ {#不區(qū)分大小寫且以.png或.jpg結(jié)尾 root /usr/share/nginx/html/test-suffix;#請(qǐng)求/suffix/a.png相當(dāng)于尋找資源/usr/share/nginx/html/test-suffix/suffix/a.png } location ^~ /jd/ {# 區(qū)分大小寫且以/jd/開頭 proxy_pass https://www.jd.com/;#proxy_pass 此處的url以/結(jié)尾,則nginx會(huì)取掉location部分再轉(zhuǎn)發(fā),例如,請(qǐng)求/jd/電器?name=1 則會(huì)轉(zhuǎn)發(fā)到https://www.jd.com/電器?name=1 } location ^~ /s {# /會(huì)匹配到所有的 proxy_pass https://www.baidu.com;#proxy_pass 此處的url沒有以/結(jié)尾,則匹配到的地址全部拼接到代理后的地址,例如,請(qǐng)求/s?name=1 則會(huì)轉(zhuǎn)發(fā)到https://www.baidu.com/s?name=1 } location / {# 會(huì)返回index.html root /usr/share/nginx/html; index index.html; } }
備注
location下的root和alias區(qū)別:
例子:
客戶端請(qǐng)求:http://localhost:8080/user/info/a.txt
nginx如果用root配置:nginx會(huì)去尋找資源:/home/html/user/info/a.txt
location ^~ /user {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E--> root /home/html;#此處可以不以/結(jié)尾 }
nginx如果用alias配置:nginx會(huì)去尋找資源:/home/html/info/a.txt
location ^~ /user {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E--> alias /home/html/;#此處以/結(jié)尾 }
總結(jié)
到此這篇關(guān)于nginx多l(xiāng)ocation配置的文章就介紹到這了,更多相關(guān)nginx多l(xiāng)ocation配置內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
標(biāo)簽:
Nginx
排行榜
