使用Nginx部署前后端分離項目

使用Nginx部署前后端分離項目:用戶中心系統實踐指南

部署前的關鍵準備

在正式部署前,務必確保前后端在生產環境能正常運行

  1. 前端:測試所有API請求路徑和生產環境配置
  2. 后端:驗證數據庫連接、環境變量和外部服務集成
  3. 完整流程測試:執行核心業務場景的端到端測試

重要提示:生產環境問題排查成本遠高于測試階段,請務必完成充分驗證


前端部署實戰

1. 生產環境配置

修改前端請求基地址(示例使用example.com,實際替換為你的域名/IP):

// src/plugins/globalRequest.ts
const request = extend({credentials: 'include',prefix: process.env.NODE_ENV === 'production' ? 'https://example.com' // 生產環境地址: undefined // 開發環境使用代理
});
2. 構建與驗證
npm run build  # 生成dist目錄
cd dist
npx serve -s  # 啟動靜態服務器# 瀏覽器中打開http://localhost:3000
# 檢查網絡請求是否指向生產環境地址
3. 服務器部署
# 上傳到服務器(替換your_user@server_ip)
scp dist.zip your_user@server_ip:/deploy/path# 服務器操作
unzip dist.zip -d user-center-front  # 解壓到指定目錄
4. Nginx配置
# /etc/nginx/conf.d/user-center.conf
server {listen 80;server_name example.com; # 你的域名或IP# 前端靜態資源location / {root /deploy/user-center-front;index index.html;try_files $uri $uri/ /index.html; # 支持前端路由}# 后端API代理location /api/ {proxy_pass http://localhost:8080/; # 后端服務地址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_connect_timeout 60s;}# 開啟Gzip壓縮gzip on;gzip_types text/plain application/javascript application/xml;
}
5. 啟動Nginx服務
systemctl enable nginx  # 設置開機自啟
systemctl restart nginx  # 重啟服務# 驗證端口
ss -tulpn | grep 80

后端部署實戰

1. 環境準備
# 安裝JDK8
yum install -y java-1.8.0-openjdk-devel# 安裝Maven
wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
tar -zxvf apache-maven-3.8.6-bin.tar.gz
mv apache-maven-3.8.6 /opt/maven
2. 項目打包

在IDEA中執行Maven打包命令:

mvn clean package -DskipTests

生成文件:target/user-center-backend-0.0.1-SNAPSHOT.jar

3. 本地驗證
java -jar user-center-backend-0.0.1-SNAPSHOT.jar \--spring.profiles.active=prod

連接前端進行集成測試

4. 服務器部署
# 上傳JAR文件,直接手拖# 服務器啟動(生產環境)
nohup java -jar user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod & # 驗證進程
pgrep -f user-center-backend

部署后驗證清單

  1. 前端訪問:https://example.com 是否正常加載
  2. API測試:在前端執行需要后端交互的操作
  3. 日志檢查:
    tail -f /var/log/nginx/error.log  # Nginx錯誤日志
    tail -f backend.log  # 應用日志
    
  4. 端口驗證:
    ss -tulpn | grep -E '80|8080'
    

性能優化建議

  1. 前端靜態資源

    location ~* \.(js|css|png)$ {expires 365d;add_header Cache-Control "public";
    }
    
  2. 后端進程管理

    # 使用systemd服務
    [Unit]
    Description=User Center Backend
    After=network.target[Service]
    ExecStart=/usr/bin/java -jar /deploy/backend/app.jar
    User=appuser
    Restart=always[Install]
    WantedBy=multi-user.target
    

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92141.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92141.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92141.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

當前就業形勢下,軟件測試工程師職業發展與自我提升的必要性

軟件測試行業正處于深刻變革期,2025年的市場已超越400億美元規模,預計2027年將增長7% 。在這個技術驅動、效率至上的時代,測試工程師若想保持競爭力,必須主動擁抱變革,系統性提升技能。通過深入分析行業現狀與人才需求…

java 之 繼承

一、繼承 1.1 、什么是繼承? 繼承就是把所有的類的公共部分(相同的成員)提取出來,放到一個類中繼承需要使用 extends 關鍵字 public class Animal{ public String name; } public class Dog extends Animal{}Dog 是 An…

強化應急通信生命線:遨游三防平板、衛星電話破局極端災害救援

暴雨傾盆,山洪咆哮,城市陷入內澇。今年進入汛期以來,我國廣東、福建、河南、陜西、京津冀等地相繼遭遇暴雨、洪澇、山洪等災害,道路損毀、基站斷網、電力中斷等次生問題為應急響應帶來嚴峻挑戰。如何保障極端場景下的通信暢通&…

【Linux系統】進程間通信:命名管道

1. 匿名管道的限制匿名管道存在以下核心限制:僅限親緣關系進程:只能用于父子進程等有血緣關系的進程間通信(如通過 fork() 創建的子進程)。單向通信:數據只能單向流動(一端寫,另一端讀&#xff…

Python Day24 多線程編程:核心機制、同步方法與實踐案例

一、線程事件對象(threading.Event)threading.Event 用于實現線程間的通信,可讓一個線程通知其他線程終止任務,核心是通過 “事件觸發” 機制協調線程行為。核心方法:創建事件對象:event threading.Event(…

007 前端( JavaScript HTML DOM+Echarts)

一.html dom運用查找html元素的三種方式通過 id 找到 HTML 元素通過標簽名找到 HTML 元素通過類名找到 HTML 元素1.通過 id 找到 HTML 元素<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>msf的網頁</title> <…

實習文檔背誦

實習內容:1.定時任務與數據補全:基于 XXL-JOB 實現分布式定時任務調度&#xff0c;補全近半年歷史操作日志數據&#xff0c;有效解決因網絡異常導致的數據缺失問題。業務場景&#xff1b;集團的4a日志半年內沒有同步&#xff0c;這邊需要把日志數據同步到集團上首先先評估每天的…

分布式CAP定理

CAP 定理在一個分布式系統中&#xff0c;以下三個特性不可能同時完全滿足&#xff0c;最多只能滿足其中兩個&#xff1a;C&#xff08;Consistency&#xff0c;一致性&#xff09;&#xff1a;所有節點在同一時間看到的數據是完全一致的&#xff08;即更新操作成功并返回后&…

PHP-Casbin:現代化 PHP 應用的權限管理引擎

在當今復雜的Web應用中&#xff0c;精細化的權限管理是保障系統安全的關鍵環節。PHP-Casbin 作為Casbin生態的PHP實現&#xff0c;憑借其靈活的模型支持和強大的擴展能力&#xff0c;已成為PHP開發者實現訪問控制的首選工具。 超越傳統權限模型 PHP-Casbin 基于PERM&#xff…

FastDeploy2.0:環境變量的說明

一、執行# 設置日志目錄 export FD_LOG_DIR/workspace/models/log# 指定使用的 GPU 設備 export CUDA_VISIBLE_DEVICES0,1,2,3# 創建日志目錄&#xff08;如果不存在&#xff09; mkdir -p "$FD_LOG_DIR"# 定義日志文件路徑 LOG_FILE"$FD_LOG_DIR/fastdeploy_se…

C語言:指針(1-2)

5. 指針運算指針的基本運算有三種&#xff0c;分別是&#xff1a;指針-整數指針-指針指針的關系運算5.1 指針運算在上面&#xff0c;我們知道&#xff0c;數組在內存中是連續存放的&#xff0c;只要知道第一個元素的地址&#xff0c;順藤摸瓜就能找到后面的所有元素。那么&…

【多模態】DPO學習筆記

DPO學習筆記1 原理1.0 名詞1.1 preference model1.2 RLHF1.3 從RLHF到DPOA.解的最優形式B. DPO下參數估計C. DPO下梯度更新D. DPO訓練的穩定性2 源代碼2.1 數據集構成2.2 計算log prob2.3 DPO loss1 原理 1.0 名詞 preference model&#xff1a;對人類偏好進行建模&#xff0…

2025最新、UI媲美豆包、DeepSeek等AI大廠的AIGC系統 - IMYAI源碼部署教程

IMYAI 系統部署與使用手冊 一、系統演示 &#x1f539; 快速體驗 前端演示地址&#xff1a;https://super.imyaigc.com后臺演示地址&#xff1a;https://super.imyaigc.com/settings &#x1f539; 技術架構 前端&#xff1a;Vite Vue3 NaiveUI TailwindCSS Plyr后端&…

【關于Java的反射】

在 Java 編程中&#xff0c;反射&#xff08;Reflection&#xff09; 是一個非常強大的工具&#xff0c;它允許你在運行時動態地獲取類的信息、創建對象、調用方法和訪問字段。雖然反射功能強大&#xff0c;但它也有一些局限性和性能開銷&#xff0c;因此需要謹慎使用。一、什么…

Gitee推出“移動軟件工廠“解決方案 解決嵌入式與涉密場景研發困局

Gitee推出"移動軟件工廠"解決方案 破解嵌入式與涉密場景研發困局 隨著數字化轉型浪潮的推進&#xff0c;軟件開發正面臨著前所未有的復雜環境挑戰。特別是在嵌入式系統、FPGA開發以及涉密信息系統等特殊場景下&#xff0c;研發團隊往往需要在高安全要求與有限網絡環境…

低功耗16*8位四線串行8*4按鍵陣矩LED驅動專用電路

概述&#xff1a;PC0340是占空比可調的LED顯示控制驅動電路。由16根段輸出、8根位輸出、數字接口、數據鎖存器、顯示存儲器、鍵掃描電路及相關控制電路組成了一個高可靠性的單片機外圍LED驅動電路。串行數據通過4線串行接口輸入到PC0340&#xff0c;采用LQFP44L的封裝形式。本產…

通過自定義注解加aop切面實現權限控制

前言&#xff1a;自定義注解&#xff0c;通過aop切面前置通知&#xff0c;對請求接口進行權限控制1&#xff0c;創建枚舉類package org.springblade.sample.annotationCommon;import lombok.AllArgsConstructor; import lombok.Getter;import java.util.Arrays; import java.ut…

IDS知識點

在網絡安全工程師、系統運維工程師等崗位的面試中&#xff0c;??IDS&#xff08;Intrusion Detection System&#xff0c;入侵檢測系統&#xff09;?? 是高頻考點&#xff0c;尤其是對網絡安全防護、安全監控類崗位。以下是IDS的核心考點和必須掌握的知識點&#xff0c;按優…

Adobe Analytics 數據分析平臺|全渠道客戶行為分析與體驗優化

Adobe Analytics 是業界領先的數據分析平臺&#xff0c;幫助企業實時追蹤客戶行為&#xff0c;整合多渠道數據&#xff0c;通過強大的分析與可視化工具深入分析客戶旅程&#xff0c;優化數字體驗。結合 Adobe Experience Cloud&#xff0c;Adobe Analytics 成為推動數字化增長和…

【輪播圖】H5端輪播圖、橫向滑動、劃屏效果實現方案——Vue3+CSS position/CSS scroller

文章目錄定位實現滑屏效果前置知識CSS: touch-action屬性CSS: transform屬性觸摸事件forEach回調占位符準備階段實現移動效果實現跟手效果觸摸結束優化完整代碼滾動實現滑屏效果前置知識CSS: scroll-snap-type屬性準備階段實現滑動效果實現吸附效果滾動條隱藏存在問題完整代碼s…