最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

云服務(wù)器用nginx配置域名訪問前后端分離項目

 更新時間:2025年09月16日 09:53:20   作者:柯南二號  
本文介紹通過Nginx反向代理實現(xiàn)多服務(wù)端口隱藏,統(tǒng)一域名入口訪問,支持HTTPS自動跳轉(zhuǎn),用戶只需輸入域名即可訪問前端、后端及其它服務(wù),具有一定的參考價值,感興趣的可以了解一下

云服務(wù)器有多個服務(wù)(前端 3000 端口、后端 8288 端口,甚至還有別的服務(wù))。

希望用戶只輸入 域名(比如 https://example.com),而不是 example.com:3000example.com:8288。

本質(zhì)上是要做 端口隱藏 + 域名統(tǒng)一入口。

核心方案是:用 Nginx / Caddy / Apache 作為反向代理(網(wǎng)關(guān)入口),監(jiān)聽標(biāo)準(zhǔn)端口 80/443,把請求轉(zhuǎn)發(fā)到后端對應(yīng)服務(wù)端口

?? 實現(xiàn)方式:Nginx 反向代理

1. 安裝 Nginx

(大多數(shù)云服務(wù)器鏡像都內(nèi)置了 Nginx,沒有就 apt/yum install nginx

2. 配置虛擬主機(jī)

假設(shè)你有:

  • 前端 React/Vue 項目跑在 3000 端口
  • 后端 API 服務(wù)跑在 8288 端口

?? 你希望訪問方式變成:

  • https://example.com/ → 前端頁面
  • https://example.com/api/ → 后端 API

Nginx 配置:

server {
    listen 80;
    server_name example.com;

    # 前端(3000端口)
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 后端 API(8288端口)
    location /api/ {
        proxy_pass http://127.0.0.1:8288/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

?? 用戶訪問 https://example.com/api/user,Nginx 會轉(zhuǎn)發(fā)到 http://127.0.0.1:8288/user
?? 用戶訪問 https://example.com/,會自動轉(zhuǎn)到 http://127.0.0.1:3000/

3. 其他服務(wù)端口同理

比如你還有 8080 端口的服務(wù),可以映射為:

location /admin/ {
    proxy_pass http://127.0.0.1:8080/;
}

這樣所有 非標(biāo)準(zhǔn)端口服務(wù) 都可以通過 域名 + 路徑 來訪問,不需要輸入端口。

?? HTTPS 支持

再加上證書就能用 443 端口,避免瀏覽器提示不安全。
示例(Let’s Encrypt 免費證書):

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
    }

    location /api/ {
        proxy_pass http://127.0.0.1:8288/;
    }
}

? 總結(jié)

一臺服務(wù)器綁定多個端口的服務(wù),要讓用戶只輸入域名訪問:

  1. 統(tǒng)一入口:80/443 端口(HTTP/HTTPS)。
  2. 用 Nginx/Apache/Caddy 做反向代理,把不同路徑轉(zhuǎn)發(fā)到不同端口。
  3. 用戶永遠(yuǎn)只用域名,Nginx 在后臺幫你隱藏端口。

整理一個 一鍵可用的 Nginx 配置模板,支持:

  • 前端項目(3000 端口)
  • 后端 API(8288 端口)
  • 其他服務(wù)(比如 8080 → /admin/)
  • 自動 HTTP → HTTPS 跳轉(zhuǎn)
  • Let’s Encrypt 免費證書(只要申請一次即可)

?? 完整 Nginx 配置示例

文件路徑:/etc/nginx/sites-available/example.conf

# =============================
# HTTP 自動跳轉(zhuǎn)到 HTTPS
# =============================
server {
    listen 80;
    server_name example.com;

    # 自動跳轉(zhuǎn) https
    return 301 https://$host$request_uri;
}

# =============================
# HTTPS 配置(主站)
# =============================
server {
    listen 443 ssl http2;
    server_name example.com;

    # SSL 證書(用 certbot/Let's Encrypt 獲取)
    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    # 一些推薦的 SSL 配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    # =============================
    # 前端服務(wù) (3000端口)
    # =============================
    location / {
        proxy_pass http://127.0.0.1:3000;
        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_set_header X-Forwarded-Proto $scheme;
    }

    # =============================
    # 后端 API (8288端口)
    # =============================
    location /api/ {
        proxy_pass http://127.0.0.1:8288/;
        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_set_header X-Forwarded-Proto $scheme;
    }

    # =============================
    # 其他服務(wù) (8080端口)
    # =============================
    location /admin/ {
        proxy_pass http://127.0.0.1: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_set_header X-Forwarded-Proto $scheme;
    }
}

?? 使用步驟

  1. 安裝 certbot 并申請證書
    (以 Ubuntu 為例)
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com
  1. 保存配置并啟用
sudo ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/
sudo nginx -t   # 檢查配置是否正確
sudo systemctl reload nginx
  1. 測試訪問
  • https://example.com/ → 前端(3000)
  • https://example.com/api/ → 后端(8288)
  • https://example.com/admin/ → 其他服務(wù)(8080)

? 從此以后,用戶訪問時 永遠(yuǎn)只需要域名,端口完全隱藏。

?? 這個場景就是典型的 前后端分離部署方案

  • 前端 (React) → 打包后是純靜態(tài)文件,放 Nginx 上跑。
  • 后端 (Spring Boot) → 打成 jar 包,跑在后臺(一般是 8080/8288 端口)。
  • Nginx → 負(fù)責(zé)做 反向代理統(tǒng)一入口,屏蔽后端端口。

拆解完整步驟 ??

?? 前后端分離項目部署流程

1. 部署 React 前端

  1. 本地打包:

    npm run build
    

    生成 build/ 目錄。

  2. 上傳到服務(wù)器:

    scp -r build/* root@your_server_ip:/var/www/react-app/
    
  3. React 訪問路徑問題:

    • 如果前端路由用了 BrowserRouter,一定要在 Nginx 配置里加:

      try_files $uri /index.html;
      

      否則刷新會 404

2. 部署 Spring Boot 后端

  1. 打包 jar:

    mvn clean package -DskipTests
    

    生成 xxx.jar。

  2. 上傳服務(wù)器:

    scp target/xxx.jar root@your_server_ip:/var/www/springboot/
    
  3. 啟動 Spring Boot(建議后臺運行 + 日志輸出):

    nohup java -jar /var/www/springboot/xxx.jar --server.port=8288 > app.log 2>&1 &
    

    ?? 這樣后端就跑在 http://127.0.0.1:8288。

(如果要長期運行,推薦用 systemdDocker 部署。)

3. 配置 Nginx

編輯 /etc/nginx/sites-available/project.conf

server {
    listen 80;
    server_name example.com;

    # ==================
    # 前端 React 靜態(tài)資源
    # ==================
    root /var/www/react-app;
    index index.html;

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

    # ==================
    # 后端 SpringBoot API
    # ==================
    location /api/ {
        proxy_pass http://127.0.0.1:8288/;   # 反向代理到 Spring Boot
        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_set_header X-Forwarded-Proto $scheme;
    }
}

4. 啟用配置 & 重啟 Nginx

sudo ln -s /etc/nginx/sites-available/project.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

5. 配置 HTTPS(推薦)

使用 Let’s Encrypt 免費證書:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com

然后配置會自動加上 443,強(qiáng)制跳轉(zhuǎn)到 https。

? 最終效果

  • https://example.com/ → React 前端頁面
  • https://example.com/api/... → Spring Boot 后端接口
  • 用戶只需要記住 域名,端口全隱藏,前后端統(tǒng)一由 Nginx 分發(fā)。

到此這篇關(guān)于云服務(wù)器用nginx配置域名訪問前后端分離項目的文章就介紹到這了,更多相關(guān)nginx 域名訪問前后端分離內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Nginx配置origin限制跨域請求的詳細(xì)過程

    Nginx配置origin限制跨域請求的詳細(xì)過程

    這篇文章主要介紹了Nginx配置origin限制跨域請求的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Nginx前端頁面刷新后出現(xiàn)404的原因與解決方案

    Nginx前端頁面刷新后出現(xiàn)404的原因與解決方案

    這篇文章主要來為大家詳細(xì)介紹一下Nginx前端頁面刷新后出現(xiàn)404 Not Found的原因與對應(yīng)的解決方案,有需要的小伙伴可以根據(jù)情況參考一下
    2025-03-03
  • 深入理解Nginx中Server和Location的匹配邏輯

    深入理解Nginx中Server和Location的匹配邏輯

    這篇文章主要介紹了深入理解Nginx中Server和Location的匹配邏輯,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • nginx部署二級目錄無法加載css和js的問題及解決過程

    nginx部署二級目錄無法加載css和js的問題及解決過程

    文章描述了React+UmiJS項目部署到Nginx二級目錄時遇到的404和靜態(tài)資源加載問題,因Nginx路徑配置錯誤導(dǎo)致,通過調(diào)整.umirc.ts文件,修正了資源路徑,最終實現(xiàn)正常部署
    2025-09-09
  • Nginx防盜鏈的配置方法

    Nginx防盜鏈的配置方法

    這篇文章主要介紹Nginx下的防盜鏈的配置方法,需要的朋友可以參考下
    2013-04-04
  • Nginx 配置根據(jù)請求IP末段進(jìn)行分流的方法

    Nginx 配置根據(jù)請求IP末段進(jìn)行分流的方法

    這篇文章主要介紹了Nginx 配置根據(jù)請求IP末段進(jìn)行分流的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Nginx中配置WebSocket代理的詳細(xì)步驟

    Nginx中配置WebSocket代理的詳細(xì)步驟

    Nginx 可以配置為 WebSocket 代理,將 WebSocket 連接從客戶端轉(zhuǎn)發(fā)到后端服務(wù)器,以下是如何在 Nginx 中配置 WebSocket 代理的詳細(xì)步驟和示例配置,需要的朋友可以參考下
    2025-02-02
  • Nginx中間件入門指南

    Nginx中間件入門指南

    Nginx也是一個web服務(wù)器,能夠支持正向代理(代理用戶去訪問服務(wù)器)、反向代理(代理服務(wù)器來讓用戶訪問)、負(fù)載均衡(將用戶的訪問分發(fā)給服務(wù)器集群),這篇文章主要介紹了Nginx中間件入門指南,需要的朋友可以參考下
    2025-10-10
  • Nginx中的root&alias文件路徑及索引目錄配置詳解

    Nginx中的root&alias文件路徑及索引目錄配置詳解

    這篇文章主要介紹了Nginx中的root&alias文件路徑及索引目錄配置,順帶講解了root和alias命令的用法,需要的朋友可以參考下
    2016-01-01
  • 如何使用Nginx和uwsgi在自己的服務(wù)器上部署python的flask項目

    如何使用Nginx和uwsgi在自己的服務(wù)器上部署python的flask項目

    Nginx 是一個高性能的 HTTP 和反向代理服務(wù),其特點是占有內(nèi)存少,并發(fā)能力強(qiáng),事實上nginx的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,這篇文章主要介紹了如何使用Nginx和uwsgi在自己的服務(wù)器上部署python的flask項目,需要的朋友可以參考下
    2023-11-11

最新評論

宜宾市| 博湖县| 抚松县| 柞水县| 志丹县| 新昌县| 弥渡县| 桦川县| 乌拉特后旗| 崇阳县| 北海市| 三亚市| 景洪市| 夏邑县| 锡林浩特市| 大厂| 伊川县| 柳河县| 望谟县| 怀远县| 土默特右旗| 曲松县| 台南市| 宜黄县| 石家庄市| 西丰县| 肃南| 高台县| 仁化县| 洛宁县| 长乐市| 芷江| 兰坪| 广宁县| 临清市| 宝山区| 综艺| 繁峙县| 松滋市| 江川县| 南乐县|