本文主要介紹了nginx 多個(gè)location轉(zhuǎn)發(fā)任意請(qǐng)求或訪問靜態(tài)資源文件的實(shí)現(xiàn),分享給大家,具體如下:
server {
#監(jiān)聽的端口
listen 80;
#監(jiān)聽的域名
server_name localhost;
#監(jiān)聽?zhēng)Ш缶Y的url
location ^~\.txt {
#文件放到/html文件夾下
root /;
}
#監(jiān)聽所有url,沒有特殊需求就用這一個(gè)location就夠了
#使用通配符只有在沒有匹配上其他location的情況下會(huì)進(jìn)入
location / {
#去掉了只有url才轉(zhuǎn)發(fā)的限制,因?yàn)橹苯釉L問域名會(huì)通不過(guò)if從而轉(zhuǎn)發(fā)不了請(qǐng)求。
proxy_pass http://localhost:8080;
}
}
附帶上匹配規(guī)則:

里面的規(guī)則自己嘗試一下就明白了
以下 為原文↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
server {
#監(jiān)聽的端口
listen 80;
#監(jiān)聽的域名
server_name localhost;
#監(jiān)聽?zhēng)Ш缶Y的url
location ^~\.txt {
#文件放到/html文件夾下
root /;
}
#監(jiān)聽所有url,沒有特殊需求就用這一個(gè)location就夠了
location / {
#沒有后綴的請(qǐng)求才會(huì)轉(zhuǎn)發(fā) 是為了配合上一個(gè)location能訪問到資源文件而不是轉(zhuǎn)發(fā)所有請(qǐng)求。沒有特殊需求就不要判斷直接proxy_pass到請(qǐng)求
if (!-e $request_filename){
proxy_pass http://localhost:8080;
break;
}
}
}
location可以添加多個(gè),但是要注意相互之間不要沖突,否則轉(zhuǎn)發(fā)多種會(huì)請(qǐng)求超時(shí)
到此這篇關(guān)于nginx 多個(gè)location轉(zhuǎn)發(fā)任意請(qǐng)求或訪問靜態(tài)資源文件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)nginx location轉(zhuǎn)發(fā)任意請(qǐng)求內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!