Nginx配置Vue項目

一、Nginx配置Vue項目代理

在開發Vue項目時,經常需要與後端服務器進行交互,但由於Vue是一個前端框架,需要將請求發送到後端服務器,Nginx就可以來充當代理服務器。

以下是一個簡單的 Nginx 配置,將請求代理到後端服務器的示例:

server {
    listen 80;
    server_name example.com;

    location /api/ {
        proxy_pass http://your_backend_server:port/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

其中,

  • listen表示監聽的端口號。
  • server_name表示服務的域名,如果需要,可以用通配符(例如*.example.com)。
  • location表示後端服務器的 API 路徑(一般以 /api/ 開頭)。
  • proxy_pass表示後端服務器的地址和端口號。
  • proxy_set_header用於設置頭部信息,這裡是設置 Host、X-Real-IP 和 X-Forwarded-For。

二、Nginx配置Vue項目刷新動態路由500問題

在使用 Vue-router 開啟了 HTML5 History 模式後,刷新頁面會返回 404 或 500 錯誤碼。這是因為當瀏覽器通過地址訪問服務端時,服務端並沒有對應的路由,所以會返回錯誤。解決辦法是使用 Nginx 的 try_files 指令。

以下是一個簡單的 Nginx 配置:

server {
    listen 80;
    server_name example.com;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

其中,try_files $uri $uri/ /index.html; 就是用於解決 404 或 500 錯誤的指令。

三、Nginx配置Vue項目代理失效

在配置 Nginx 代理時,有時會出現代理失效的問題。這通常是由於 Nginx 緩存造成的。解決辦法是使用 Nginx 的 proxy_cache_bypass 指令。

以下是一個簡單的 Nginx 配置:

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
server {
    listen 80;
    server_name example.com;

    location /api/ {
        proxy_pass http://your_backend_server:port/;
        proxy_cache my_cache;
        proxy_cache_valid any 5m;
        proxy_cache_bypass $http_cache_control;
        add_header X-Cache-Status $upstream_cache_status;
    }
}

其中,proxy_cache my_cache;表示啟用緩存,proxy_cache_bypass $http_cache_control;表示繞過緩存。同時,通過添加 X-Cache-Status 頭部可以方便地查看緩存狀態。

四、Nginx代理Vue項目

在將 Vue 項目部署到生產環境時,通常需要使用 Nginx 充當 Web 服務器,可以通過以下配置實現:

server {
    listen 80;
    server_name example.com;

    location / {
        root /path/to/your/dist;
        index index.html;
        try_files $uri $uri/ /index.html;
    }
}

其中,root /path/to/your/dist;表示打包好的 Vue 項目的文件夾路徑,try_files $uri $uri/ /index.html;用於解決刷新動態路由問題。

五、Nginx部署Vue項目後端地址

在開發時,前端通常使用相對路徑跟後端進行交互,但在生產環境中,通常需要使用絕對路徑。可以將後端地址配置到 Nginx 中:

server {
    listen 80;
    server_name example.com;

    location / {
        root /path/to/your/dist;
        index index.html;
        try_files $uri $uri/ /index.html;
        add_header Access-Control-Allow-Origin your_backend_server;
    }
}

其中,add_header Access-Control-Allow-Origin your_backend_server;表示允許跨域訪問後端服務器。

六、Vue history Nginx配置

使用 Vue-router 中的 History 模式時,需要將所有路由都指向 index.html 文件。可以使用以下配置實現:

location / {
    try_files $uri $uri/ /index.html;
}

七、Linux部署Vue項目

在 Linux 服務器上部署 Vue 項目,需要先安裝 Node.js 和 Nginx。

以下是部署步驟:

  1. 安裝 Node.js
  2. 使用 npm 安裝 Vue CLI
  3. 使用 Vue CLI 創建項目
  4. 打包靜態資源
  5. 將打包好的文件上傳到服務器
  6. 在 Nginx 中配置項目
  7. 重啟 Nginx

八、Nginx靜態資源配置

可以使用以下配置來配置 Nginx 靜態資源:

server {
    listen 80;
    server_name example.com;

    location / {
        root /path/to/your/dist;
        index index.html;
        try_files $uri $uri/ /index.html;
        add_header Access-Control-Allow-Origin your_backend_server;
    }

    location /img/ {
        root /path/to/your/static;
        expires 1d; 
        add_header Cache-Control "public"; 
    }

    location /js/ {
        root /path/to/your/static;
        expires 1d; 
        add_header Cache-Control "public"; 
    }

    location /css/ {
        root /path/to/your/static;
        expires 1d; 
        add_header Cache-Control "public"; 
    }
}

其中,location /img/ {...}location /js/ {...}location /css/ {...}分別表示靜態資源的路徑,expires 1d;表示靜態資源緩存時間為一天,add_header Cache-Control "public";表示允許緩存。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/258341.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:49
下一篇 2024-12-15 12:49

相關推薦

  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • 掌握magic-api item.import,為你的項目注入靈魂

    你是否曾經想要導入一個模塊,但卻不知道如何實現?又或者,你是否在使用magic-api時遇到了無法導入的問題?那麼,你來到了正確的地方。在本文中,我們將詳細闡述magic-api的…

    編程 2025-04-29
  • Vue TS工程結構用法介紹

    在本篇文章中,我們將從多個方面對Vue TS工程結構進行詳細的闡述,涵蓋文件結構、路由配置、組件間通訊、狀態管理等內容,並給出對應的代碼示例。 一、文件結構 一個好的文件結構可以極…

    編程 2025-04-29
  • GitHub好玩的開源項目

    本文旨在介紹GitHub上一些好玩的開源項目,並提供代碼示例供讀者參考和學習。 一、Emoji列表 GitHub上有一份完整的Emoji列表,它支持各種平台和設備,方便用戶在Git…

    編程 2025-04-28
  • 如何將Java項目分成Modules並使用Git進行版本控制

    本文將向您展示如何將Java項目分成模塊,並使用Git對它們進行版本控制。分割Java項目可以使其更容易維護和拓展。Git版本控制還可以讓您跟蹤項目的發展並協作開發。 一、為什麼要…

    編程 2025-04-28
  • Django框架:從簡介到項目實戰

    本文將從Django的介紹,以及如何搭建Django環境開始,逐步深入到Django模型、視圖、模板、表單,最後通過一個小型項目實戰,進行綜合性的應用,讓讀者獲得更深入的學習。 一…

    編程 2025-04-28
  • IIS部署Python項目

    本文將從多個方面詳細闡述在IIS上如何部署Python項目。包括安裝IIS、安裝Python、配置IIS、編寫和部署Python代碼等內容。 一、安裝IIS和Python 在開始進…

    編程 2025-04-28
  • 如何使用TKE來開發Java項目

    本文將從多個方面詳細闡述如何使用TKE(Theia IDE)來進行Java項目的開發。TKE是一個功能強大的在線集成開發環境,提供了大量的工具和插件,讓開發者可以高效地進行Java…

    編程 2025-04-28
  • Vue3的vue-resource使用教程

    本文將從以下幾個方面詳細闡述Vue3如何使用vue-resource。 一、安裝Vue3和vue-resource 在使用vue-resource前,我們需要先安裝Vue3和vue…

    編程 2025-04-27
  • Spark開源項目-大數據處理的新星

    Spark是一款開源的大數據分佈式計算框架,它能夠高效地處理海量數據,並且具有快速、強大且易於使用的特點。本文將從以下幾個方面闡述Spark的優點、特點及其相關使用技巧。 一、Sp…

    編程 2025-04-27

發表回復

登錄後才能評論