Nginx路徑重寫(xiě)方式
Nginx路徑重寫(xiě)
問(wèn)題
經(jīng)常遇到前后端分離項(xiàng)目部署時(shí)候,前端請(qǐng)求的路徑會(huì)多加一層路徑
比如我的
- ?前端地址是:http://baidu.com,后端地址是:http://taobao.com
- 那么前端如果直接寫(xiě)死后端地址的話,一是要處理跨域問(wèn)題,二是如果后端換地址需要改前端代碼
- 最好的辦法就是通過(guò)反向代理,比如http://baidu.com/api然他指向http://taobao.com,把**/api**替換掉就好了
- 像vue有vue.config.js中配置反向代理來(lái)重寫(xiě)路徑,但實(shí)際環(huán)境大多數(shù)是用專門的反向代理
直接設(shè)置為后端的真實(shí)地址
需要改前端代碼,如果部署多個(gè)服務(wù)器就要改n次,很不靈活,而且存在跨域問(wèn)題也要解決
利用寶塔的nginx配置反向代理
雖然可以配置,但是存在奇怪的bug,設(shè)置了內(nèi)容替換,在的服務(wù)器可以生效,有的不能生效
解決
寶塔直接設(shè)置反向代理 *FAIL
配置文件:
location /stage-api { proxy_pass http://127.0.0.1:6501; proxy_set_header Accept-Encoding ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; #add_header X-Cache $upstream_cache_status; #Set Nginx Cache proxy_set_header Accept-Encoding ""; sub_filter "/stage-api" "/"; sub_filter_once on; add_header Cache-Control no-cache; }
主要就是用到sub_filter
通過(guò)一番檢索說(shuō)sub_filter需要把gzip關(guān)閉才可以用,否則不生效,但我關(guān)了還是不生效
修改配置文件 *PASS
修改后的配置文件如下:
location /stage-api { proxy_pass http://127.0.0.1:6501; proxy_set_header Accept-Encoding ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; #add_header X-Cache $upstream_cache_status; #Set Nginx Cache proxy_set_header Accept-Encoding ""; #sub_filter /stage-api /; #sub_filter_once on; rewrite ^/stage-api/(.*) /$1 break; add_header Cache-Control no-cache; }
注釋掉sub_filter
用 rewrite完美解決!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx實(shí)現(xiàn)跨域使用字體文件的配置詳解
這篇文章主要給大家介紹了關(guān)于Nginx實(shí)現(xiàn)跨域使用字體文件的配置方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06nginx并發(fā)數(shù)限制limit_conn基本語(yǔ)法
這篇文章主要為大家介紹了nginx并發(fā)數(shù)限制limit_conn基本語(yǔ)法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Nginx防止直接用IP訪問(wèn)Web服務(wù)器的設(shè)置方法
看了很多Nginx的配置,好像都忽略了ip直接訪問(wèn)Web的問(wèn)題,這樣理論上不利于SEO優(yōu)化,所以我們希望可以避免直接用IP訪問(wèn)網(wǎng)站,而是域名訪問(wèn),具體怎么做呢,看下面2012-09-09總結(jié)Nginx 的使用過(guò)程中遇到的問(wèn)題及解決方案
這篇文章主要總結(jié)了Nginx 的使用過(guò)程中遇到的問(wèn)題及解決方案,非常的簡(jiǎn)單實(shí)用,以后遇到相關(guān)問(wèn)題還會(huì)繼續(xù)更新,希望大家收藏關(guān)注2014-10-10Nginx的405 not allowed錯(cuò)誤解決方法
本文主要介紹了Nginx的405 not allowed錯(cuò)誤解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05Nginx環(huán)境下WordPress的多站點(diǎn)功能配置詳解
WordPress的多站點(diǎn)功能允許安裝一個(gè)WordPress程序的情況下,實(shí)現(xiàn)多個(gè)站點(diǎn)也就是一套程序,可以綁定多個(gè)域名或子域名,本文詳細(xì)介紹了在Nginx環(huán)境下WordPress的多站點(diǎn)功能配置方法2018-10-10