Nginx?proxy、rewrite、alias配置過程
Nginx proxy、rewrite、alias配置
proxy
一般解決跨域問題,使用Nginx進(jìn)行proxy轉(zhuǎn)發(fā),也可以實現(xiàn)負(fù)載均衡。
# 代理根目錄到內(nèi)部應(yīng)用 location / { proxy_pass http://127.0.0.1:8080; } # 代理模塊到內(nèi)部應(yīng)用,可以帶上后面拼接的路徑,如果訪問的是/order 則會進(jìn)行一次301重定向,讓瀏覽器訪問/order/ location /order/ { proxy_pass http://127.0.0.1:8080/; } # 靜態(tài)資源 # 路徑匹配 ^~為普通匹配,沒有寫也默認(rèn)是普通匹配,所以可以不加 root /www/resources/static/; location ^~ /static/ { root /www/resources/; } # 后綴,文件格式匹配 location ~*\.(gif|jpg|jpeg|png)${ root /www/resources/; }
location 的匹配取最長 最精確的那條。
rewrite
Nginx的rewrite模塊即ngx_http_rewrite_module標(biāo)準(zhǔn)模塊,主要功能是重寫請求URI,也是Nginx默認(rèn)安裝的模塊。
rewrite regrex replacement [flag]
匹配正則將其中regrex
部分替換成replacement
。而flag則表示替換的程度
last
匹配成功后,其余匹配不執(zhí)行(可以重寫多個)直接用新的URI進(jìn)行下一跳,也會為新的URI進(jìn)行l(wèi)ocation匹配。break
停止rewrite的相關(guān)指令,但不進(jìn)行l(wèi)ocation跳轉(zhuǎn)。重寫后的請求在一個location域中跳轉(zhuǎn)??赡軙腥擞X得沒啥用,但是有些場景就是需要在url上增加一個參數(shù)但頁面不做顯式刷新redirect
響應(yīng)請求頭返回302,重寫瀏覽器uri并進(jìn)行臨時重定向permanent
響應(yīng)請求頭返回301,重寫瀏覽器uri并進(jìn)行永久重定向
為了避免一個請求經(jīng)過兩次WAF,又能實現(xiàn)轉(zhuǎn)向到靜態(tài)頁面,用了 redirect重定向,讓第二次請求由瀏覽器發(fā)出
location /download { rewrite /download index.html redirect; }
alias
vue的應(yīng)用入口是index.html,打包后,訪問nginx的80端口想要出這個網(wǎng)頁,就需要配置alias
# 將/download請求 別名到/download/index.html頁面,但是中間會發(fā)生一次301重定向重新訪問/download/ location /download { index index.html; alias /static/; }
靜態(tài)資源別名
# 將/static/的文件都指向nginx 的/resource/static/文件夾 location /static/ { alias /resource/static/; }
Nginx的proxy_pass、root、alias的說明
代理配置:
1、root
root配置代理路徑時,會在代理的地址后拼接配置字段:
location /static { root static/image; }
在訪問http://ip:port/static/*.*時會映射到http://ip:port/static/static/image/*.*
2、alias(只能用于location)
alias配置代理路徑時,直接替換代理地址:
location /static { alias static/image; }
在訪問http://ip:port/static/*.*時會映射到http://ip:port/static/image/*.*
3、proxy_pass
proxy_pass配置代理路徑時,直接替換整個代理路徑,包括ip地址的端口等:
location /static { proxy_pass http://ip_two:port_two/static; }
在訪問http://ip:port/static/*.*時會映射到http://ip_two:port_two/static/static/*.*
代理路徑后不帶斜杠時,配置路徑會替代原本的ip和端口等,并拼接代理地址。
代理路徑后帶斜杠時,配置路徑會替代原本的ip和端口等,不拼接代理地址。
location /static/ { proxy_pass http://ip_two:port_two/abc/; }
在訪問http://ip:port/static/*.*時會映射到http://ip_two:port_two/abc/*.*
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
負(fù)載均衡的基本知識以及使用nginx進(jìn)行負(fù)載均衡的簡單例子
今天小編就為大家分享一篇關(guān)于負(fù)載均衡的基本知識以及使用nginx進(jìn)行負(fù)載均衡的簡單例子,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12Nginx配置統(tǒng)計流量帶寬請求及記錄實時請求狀態(tài)的方法
這篇文章主要介紹了Nginx中配置統(tǒng)計流量帶寬請求及記錄實時請求狀態(tài)的方法,分別用到了ngx_req_status和ngx_realtime_request模塊,需要的朋友可以參考下2016-01-01