溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

nginx跨域問題如何解決

發(fā)布時(shí)間:2022-06-02 11:35:36 來源:億速云 閱讀:108 作者:iii 欄目:大數(shù)據(jù)

今天小編給大家分享一下nginx跨域問題如何解決的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

前后端分離,使用nginx解決跨域問題

前端:vue.js+nodejs+webpack

后臺(tái):springboot

反向代理服務(wù)器:nginx

思想:將前端代碼打包,讓nginx指向靜態(tài)資源,nginx對(duì)后臺(tái)請(qǐng)求進(jìn)行轉(zhuǎn)發(fā)。

1、將前端代碼打包:

npm run build

會(huì)生成一個(gè)dist文件夾。包含一個(gè)index.html文件和一個(gè)static文件夾,路徑以我本地為例:

/users/xxx/ideaprojects/webtest/dist

2、打開

/usr/local/etc/nginx目錄下的nginx.conf,在server中添加如下:

listen  80; #原為8080,避免沖突,更改為80

  server_name localhost;

 

  #charset koi8-r;

 

  #access_log logs/host.access.log main;

 

 

  location / {

   root /users/xxx/ideaprojects/webtest/dist;

   index index.html;

    

   # 此處用于處理 vue、angular、react 使用h5 的 history時(shí) 重寫的問題

   if (!-e $request_filename) {

    rewrite ^(.*) /index.html last;

    break;

   }

  }

 

 

  # 代理服務(wù)端接口

  location /api/ {

   proxy_pass http://localhost:8080/;# 代理接口地址

  }

測(cè)試

前端發(fā)送請(qǐng)求:http://localhost/test ,vue-router將其重定向?yàn)閔ttp://localhost/api/demo/1,實(shí)際訪問是http://localhost:8080/demo/1。

直接向后臺(tái)發(fā)送請(qǐng)求:訪問http://localhost/api/demo/1,實(shí)際訪問是:http://localhost:8080/demo/1

內(nèi)容擴(kuò)展思考:

1).
# 代理服務(wù)端接口

location /api/ {
proxy_pass http://localhost:8080/;# 代理接口地址
}

代理接口地址只到8080,那么他會(huì)自動(dòng)將后臺(tái)項(xiàng)目的名稱加上??? 比如接口是http://148.70.110.87:8080/項(xiàng)目名稱/方法名稱 。。。

2).js 中是這樣請(qǐng)求的 ,nginx是按照您上面的配置,但是請(qǐng)求出錯(cuò)http://148.70.110.87/api/index2 404 (not found)

axios.post('/api/index2')
.then( (response) =>{
console.log(response);
})
.catch( (error)=> {
console.log(error);
});

3).第三個(gè)步驟,測(cè)試,實(shí)在看不懂要是能有相關(guān)的代碼就好了

以上就是“nginx跨域問題如何解決”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI