首頁 > 軟體

Nginx解決vue專案伺服器部署及跨域存取後端詳解

2022-11-09 14:03:14

準備

(1)首先是一個Vue專案。

(2)其次準備好伺服器(在這裡我是用虛擬機器器VMware)。

(3)準備好一個SpringBoot後端程式碼。

(4)伺服器上必須安裝Nginx。

1、前端程式碼注意事項:

(1)在這裡我是用vuecli3腳手架建立的vue專案的,所以專案建立完畢之後是沒有vue.config.js的。

其實這個檔案的建立是為了本地測試解決前後端跨域問題的,但是在打包專案的時候需要把這裡關於跨域的程式碼需要註釋。

// vue.config.js

module.exports = {
    publicPath: './',
    runtimeCompiler: true,
    // devServer:{
    //     port:83,
    //     proxy:{
    //         '/api':{
    //             target:"http://localhost:8086",
    //             changOrigin: true,  //允許跨域
    //             pathRewrite:{
    //                 '^/api':''  //重寫路徑
    //             }
    //         }
    //     }
    // }
}

(2)第二點前端設定的請求路徑需要加一個字首,用於nginx的路由轉發:

import axios from "axios";
const request = axios.create({
    // baseURL: 'http://localhost:8086',  //  注意!!  這裡是全域性統一加上了  '/api'  字首,也就是說所有的介面都會加上'/api'字首名
    // timeout: 5000
    //利用nignx解決跨域問題
    baseURL: '/api',  //  注意!!  這裡是全域性統一加上了  '/api'  字首,也就是說所有的介面都會加上'/api'字首名
    timeout: 5000
})
export default request;

(3)第三點需要改一下路徑地址,設定路由和元件之間的關係,設定成Hash路由模式。

(4)基本上到這裡然後控制檯npm run build 一下就可以了!!

(5)將dist資料夾的檔案上傳到Nginx中。

2、虛擬機器器的Nginx設定關鍵點:

重要的一點,全程都要以root賬戶進行操作,輸入su root ,然後輸入密碼即可進行root許可權。

(1)Nginx結構目錄:

(2)在這裡我們要把前端打包好的程式碼dist下面的檔案通過第三方軟體上傳到了index中了。

(3)這時候開始設定cong中的nginx.conf檔案,vim nginx.conf。

(4)修改組態檔:具體如圖所示,在這裡注意proxy_pass http://之後的地址加你自己電腦的IP地址加上相應的後端的埠號。

舉個例子:假設這裡我本機的IP地址為192.168.12.1,SpringBoot的埠號為8081,那麼請求地址為proxy_pass http://192.168.12.1:8081/;

如何檢視本機的Ip地址呢?找到window10左下角輸入cmd,然後輸入ipconfig,就可以檢視了。

(5)還有很重要的一點,要關閉Linux的防火牆,我這裡是centos7.6,所以在命令列要輸入systemctl stop firewalld.service。

到這裡的話,把後端的專案跑起來,虛擬機器器上的Nginx執行起來,專案就可以正常存取了!!!

測試

(1)存取伺服器中的前端檔案

(2)前端檔案請求,然後通過Nginx轉發到後端。

(3)後端接受請求,給予前端反饋。

總結 

到此這篇關於Nginx解決vue專案伺服器部署及跨域存取後端的文章就介紹到這了,更多相關Nginx解決vue專案伺服器部署內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com