Nginx?proxy、rewrite、alias配置過程
Nginx proxy、rewrite、alias配置
proxy
一般解決跨域問題,使用Nginx進(jìn)行proxy轉(zhuǎn)發(fā),也可以實(shí)現(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)。可能會有人覺得沒啥用,但是有些場景就是需要在url上增加一個參數(shù)但頁面不做顯式刷新redirect響應(yīng)請求頭返回302,重寫瀏覽器uri并進(jìn)行臨時重定向permanent響應(yīng)請求頭返回301,重寫瀏覽器uri并進(jìn)行永久重定向
為了避免一個請求經(jīng)過兩次WAF,又能實(shí)現(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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx報錯104:Connection?reset?by?peer問題的解決及分析
最近恰好又遇到這了個錯誤,為了加深記憶,所以記錄下我遇到這個錯誤的主要原因,下面這篇文章主要給大家介紹了關(guān)于Nginx報錯104:Connection?reset?by?peer問題的解決及分析的相關(guān)資料,需要的朋友可以參考下2022-07-07
Nginx動態(tài)IP黑名單的實(shí)現(xiàn)步驟
為了封禁某些爬蟲或者惡意用戶對服務(wù)器的請求,我們需要建立一個動態(tài)的?IP?黑名單,本文主要介紹了Nginx動態(tài)IP黑名單的實(shí)現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2025-02-02
Nginx服務(wù)器的location指令匹配規(guī)則詳解
這篇文章主要介紹了Nginx服務(wù)器的location指令匹配規(guī)則,文中介紹了一種動靜態(tài)地址分離的方法示例,需要的朋友可以參考下2015-12-12
nginx實(shí)現(xiàn)tomcat動靜分離詳解
本篇文章主要介紹了nginx實(shí)現(xiàn)tomcat動靜分離詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
nginx+keepalived實(shí)現(xiàn)高可用實(shí)踐
keepalived是一個集群管理工具,保證集群高可用,通過VRRP協(xié)議選舉出主節(jié)點(diǎn),保證業(yè)務(wù)連續(xù)性,文中以部署Nginx+Keepalived高可用集群為例,詳細(xì)描述了部署過程2026-05-05
503 service unavailable錯誤解決方案講解
這篇文章主要介紹了503 service unavailable錯誤解決方案講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
nginx結(jié)合openssl實(shí)現(xiàn)https的方法
這篇文章主要介紹了基于nginx結(jié)合openssl實(shí)現(xiàn)https的方法,準(zhǔn)備工作大家需要安裝nginx服務(wù),具體操作過程跟隨小編一起看看吧2021-07-07

