nginx多l(xiāng)ocation配置實(shí)例代碼
前言
nginx server下配置多個(gè)location根據(jù)路徑匹的不同做不同的處理。
nginx常用正則表達(dá)式
語法規(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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Apache Nginx 禁止目錄執(zhí)行PHP腳本文件的方法
這篇文章主要介紹了Apache Nginx 禁止目錄執(zhí)行PHP腳本文件的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06
Nginx解決vue項(xiàng)目服務(wù)器部署及跨域訪問后端詳解
跨域問題在前后端分離項(xiàng)目很常見,至于為什么會(huì)跨域,同源策略,百度各種博客都很詳細(xì),這里不再介紹,這篇文章主要給大家介紹了關(guān)于Nginx解決vue項(xiàng)目服務(wù)器部署及跨域訪問后端的相關(guān)資料,需要的朋友可以參考下2022-11-11
nginx中使用nginx-http-concat模塊合并靜態(tài)資源文件
這篇文章主要介紹了nginx中使用nginx-http-concat模塊合并靜態(tài)資源文件,用以加速網(wǎng)站的CSS、JS等靜態(tài)資源載入速度,需要的朋友可以參考下2014-06-06
封80端口應(yīng)對(duì)策略 Nginx反向代理For WIN2003超級(jí)傻瓜式配置
封80應(yīng)對(duì)策略,Nginx反向代理ForWIN2003超級(jí)傻瓜式配置!2010-03-03
使用Nginx代理解決跨域問題并傳遞請(qǐng)求頭的完整指南
在現(xiàn)代 Web 開發(fā)中,跨域資源共享(CORS)是一個(gè)常見的問題,當(dāng)你的前端應(yīng)用嘗試從一個(gè)域名請(qǐng)求另一個(gè)域名的資源時(shí),瀏覽器會(huì)阻止這種請(qǐng)求,除非目標(biāo)服務(wù)器明確允許跨域訪問,本文將詳細(xì)介紹如何使用 Nginx 作為代理服務(wù)器來解決跨域問題,需要的朋友可以參考下2025-01-01
Nginx+ModSecurity安全模塊部署的實(shí)現(xiàn)
本文主要介紹了Nginx+ModSecurity安全模塊部署的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08

