Nginx反向代理實(shí)現(xiàn)Vue跨域的示例
1.場景
項(xiàng)目前后端分離,前端項(xiàng)目使用vue框架書寫,在請求后端接口時(shí),由于服務(wù)運(yùn)行在不同的服務(wù)器,就會(huì)出現(xiàn)跨域問題。 示例:
運(yùn)行環(huán)境:Windows,
前端項(xiàng)目的項(xiàng)目地址為:192.168.1.2:8082,
后端項(xiàng)目的項(xiàng)目地址為:192.168.1.3:8083, 由于ip地址不同,肯定會(huì)存在跨域問題
2.解決方法
(1) 后端配置跨域,如下是springboot的配置
public class TestApplication implements WebMvcConfigurer { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } @Override protected void addCorsMappings(CorsRegistry registry) { // 解決跨域問題 registry.addMapping("/**") .allowCredentials(true) .allowedHeaders("*") .allowedOrigins("*") .allowedMethods("*") .maxAge(3600); super.addCorsMappings(registry); } }
但是在復(fù)雜請求時(shí)(帶自定義的請求頭參數(shù)),由于瀏覽器的自檢機(jī)制,會(huì)先發(fā)送一次options請求,這無疑會(huì)增加服務(wù)器的負(fù)擔(dān),這就很煩,那么怎么解決這個(gè)問題呢?馬上揭曉答案
(2) 使用nginx進(jìn)行反向代理,徹底解決跨域問題,再也不用擔(dān)心options請求了
第一步:下載nginx并解壓
第二步,打開conf目錄下的nginx.conf文件,找到以下代碼塊
(1)nginx配置文件基本參數(shù)的釋義
server { listen 8085; // 我們要監(jiān)聽的端口(可以是沒有被占用的任意端口號(hào)) server_name 192.168.1.1; // 你的服務(wù)器ip地址 location /api { // 要代理的路徑,這個(gè)是指以api開頭 proxy_pass http://127.0.0.1:8082/; // 代理指向的ip地址以及端口號(hào) } }
(2)上面我們說到前端的項(xiàng)目地址為192.168.1.2:8082,那么我們實(shí)際就可以這樣來配置
server { listen 8085; // 我們要監(jiān)聽的端口(可以是沒有被占用的任意端口號(hào)) server_name 192.168.1.2; // 你的服務(wù)器ip地址 location / { // 代理/開頭的路徑 proxy_pass http://192.168.1.2:8082/; // 代理指向的ip地址以及端口號(hào),切記加上http } location /api { // 代理api開頭的路徑 proxy_pass http://192.168.1.3:8083/; // 指向后端接口的IP地址加端口號(hào) } }
(3)點(diǎn)擊nginx.exe將其啟動(dòng)
這樣我們在訪問http://192.168.1.2:8085的時(shí)候,就會(huì)打開你的前端項(xiàng)目頁面,在請求接口時(shí),需要在前端項(xiàng)目將url改為例如http://192.168.1.2:8085/api/user/login。這樣就會(huì)將請求的接口地址帶到http://192.168.1.3:8083/user/login上,可以發(fā)現(xiàn),我們前端項(xiàng)目的域名和請求后端接口的域名都是192.168.1.2:8085,這樣就不會(huì)存在跨域問題了。
到此這篇關(guān)于Nginx反向代理實(shí)現(xiàn)Vue跨域的示例的文章就介紹到這了,更多相關(guān)Nginx反向代理Vue跨域內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx根據(jù)不同瀏覽器語言配置頁面跳轉(zhuǎn)的方法
這篇文章主要介紹了Nginx根據(jù)不同瀏覽器語言配置頁面跳轉(zhuǎn)的方法,包括一個(gè)簡體繁體的基本判斷方法及實(shí)際根據(jù)中英文跳轉(zhuǎn)的例子,需要的朋友可以參考下2016-04-04nginx如何實(shí)現(xiàn)配置靜態(tài)資源服務(wù)器及防盜鏈
這篇文章主要為大家介紹了nginx實(shí)現(xiàn)配置靜態(tài)資源服務(wù)器及防盜鏈步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11docker nginx實(shí)現(xiàn)一個(gè)主機(jī)部署多個(gè)站點(diǎn)操作
這篇文章主要介紹了docker nginx實(shí)現(xiàn)一個(gè)主機(jī)部署多個(gè)站點(diǎn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11Nginx反向代理及負(fù)載均衡如何實(shí)現(xiàn)(基于linux)
這篇文章主要介紹了Nginx反向代理及負(fù)載均衡如何實(shí)現(xiàn)(基于linux),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Nginx配置二級(jí)域名的方法實(shí)現(xiàn)
本文主要介紹了Nginx配置二級(jí)域名的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03nginx部署后css、js、圖片等樣式不加載問題的兩種解決方案
這篇文章主要介紹了nginx部署后css、js、圖片等樣式不加載問題的兩種解決方案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-12-12