Nginx中的location路徑映射問(wèn)題
Nginx location路徑映射
nginx 配置 proxy_pass時(shí)可以實(shí)現(xiàn)URL路徑的部分替換
1.proxy_pass的目標(biāo)地址后,默認(rèn)不帶/,表示只代理域名,url和querystring部分不會(huì)變(把請(qǐng)求的path拼接到proxy_pass目標(biāo)域名之后作為代理的URL)
2.目標(biāo)地址后帶/,則表示把path中l(wèi)ocation匹配成功的部分剪切掉之后再拼接到proxy_pass目標(biāo)地址
例子:
server {
location /xxx {
proxy_pass http://server_url;
}
location /xxx {
proxy_pass http://server_url/;
}
}比如請(qǐng)求 域名/xxx/index.html
實(shí)際代理的目標(biāo)url分別是
- proxy_pass不帶/:http://server_url/xxx/index.html(直接拼接到路徑后)
- proxy_pass帶/:http://server_url/index.html (xxx被去掉)
Nginx的location匹配規(guī)則
Nginx的location語(yǔ)法
location [=|~|~*|^~] /uri/ { … }- = 嚴(yán)格匹配。如果請(qǐng)求匹配這個(gè)location,那么將停止搜索并立即處理此請(qǐng)求
- ~ 區(qū)分大小寫(xiě)匹配(可用正則表達(dá)式)
- ~* 不區(qū)分大小寫(xiě)匹配(可用正則表達(dá)式)
- !~ 區(qū)分大小寫(xiě)不匹配
- !~* 不區(qū)分大小寫(xiě)不匹配
- ^~ 如果把這個(gè)前綴用于一個(gè)常規(guī)字符串,那么告訴nginx 如果路徑匹配那么不測(cè)試正則表達(dá)式
示例1:
location / { }匹配任意請(qǐng)求
示例2:
location ~* .(gif|jpg|jpeg)$ {
rewrite .(gif|jpg|jpeg)$ /logo.png;
}不區(qū)分大小寫(xiě)匹配任何以gif、jpg、jpeg結(jié)尾的請(qǐng)求,并將該請(qǐng)求重定向到 /logo.png請(qǐng)求
location ~ ^.+\.txt$ {
root /usr/local/nginx/html/;
}區(qū)分大小寫(xiě)匹配以.txt結(jié)尾的請(qǐng)求,并設(shè)置此location的路徑是/usr/local/nginx/html/。
也就是以.txt結(jié)尾的請(qǐng)求將訪問(wèn)/usr/local/nginx/html/ 路徑下的txt文件
alias與root的區(qū)別
- root 實(shí)際訪問(wèn)文件路徑會(huì)拼接URL中的路徑
- alias 實(shí)際訪問(wèn)文件路徑不會(huì)拼接URL中的路徑
示例如下:
location ^~ /sta/ {
alias /usr/local/nginx/html/static/;
}- 請(qǐng)求:http://test.com/sta/sta1.html
- 實(shí)際訪問(wèn):/usr/local/nginx/html/static/sta1.html 文件
location ^~ /tea/ {
root /usr/local/nginx/html/;
}- 請(qǐng)求:http://test.com/tea/tea1.html
- 實(shí)際訪問(wèn):/usr/local/nginx/html/tea/tea1.html 文件
last 和 break關(guān)鍵字的區(qū)別
(1)last 和 break 當(dāng)出現(xiàn)在location 之外時(shí),兩者的作用是一致的沒(méi)有任何差異
(2)last 和 break 當(dāng)出現(xiàn)在location 內(nèi)部時(shí):
- last 使用了last 指令,rewrite 后會(huì)跳出location 作用域,重新開(kāi)始再走一次剛才的行為
- break 使用了break 指令,rewrite后不會(huì)跳出location 作用域,它的生命也在這個(gè)location中終結(jié)
permanent 和 redirect關(guān)鍵字的區(qū)別
- rewrite … permanent 永久性重定向,請(qǐng)求日志中的狀態(tài)碼為301
- rewrite … redirect 臨時(shí)重定向,請(qǐng)求日志中的狀態(tài)碼為302
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx跨域訪問(wèn)配置方式(Web反向代理跨域訪問(wèn)配置)
這篇文章主要介紹了Nginx跨域訪問(wèn)配置方式(Web反向代理跨域訪問(wèn)配置),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Nginx配置管理與Flask登錄日志查詢優(yōu)化實(shí)戰(zhàn)指南
在 Web 開(kāi)發(fā)和服務(wù)器運(yùn)維中,Nginx 的配置管理和后端 API 的數(shù)據(jù)查詢優(yōu)化是常見(jiàn)的需求,本文將通過(guò)兩個(gè)典型場(chǎng)景進(jìn)行詳細(xì)講解文章包含詳細(xì)的操作步驟、代碼示例和優(yōu)化建議,需要的朋友可以參考下2025-05-05
使用Nginx反向代理實(shí)現(xiàn)多端口跳轉(zhuǎn)的實(shí)戰(zhàn)分享
在現(xiàn)代Web開(kāi)發(fā)中,Nginx作為一款高性能的開(kāi)源反向代理服務(wù)器,提供了強(qiáng)大的功能來(lái)管理網(wǎng)絡(luò)流量和路由,本文將介紹如何利用 Nginx 的反向代理功能,以實(shí)現(xiàn)多端口跳轉(zhuǎn)的效果,需要的朋友可以參考下2024-02-02
nginx使用sticky基于cookie的會(huì)話保持方式
這篇文章主要介紹了nginx使用sticky基于cookie的會(huì)話保持方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Nginx限制某個(gè)IP同一時(shí)間段的訪問(wèn)次數(shù)和請(qǐng)求數(shù)示例代碼
nginx可以通過(guò)ngx_http_limit_conn_module和ngx_http_limit_req_module配置來(lái)限制ip在同一時(shí)間段的訪問(wèn)次數(shù).具體示例代碼大家參考下本文2017-08-08

