【Nginx反向代理】通過Nginx反向代理將多個后端server統一到同一個端口上的方法

文章目錄

  • 前言
  • 解決方案:使用 Nginx 做統一反向代理

前言

在多人開發任務中,如果不同人負責不同的后端接口服務開發,那么就面臨著每個人的服務部署到不同的端口上,甚至有的人的服務部署在不同的服務器上。這時候前端如果想要調用后端的接口,就非常麻煩。

比如下面這種情況:

  • 開發者 A 的接口部署在 http://localhost:5051/api/…

  • 開發者 B 的接口部署在 http://localhost:5351/api/…

  • 開發者 C 的服務部署在另一臺服務器上:http://remote-server.com:8000/items/…

前端要分別調用這些接口,就需要處理多個端口、多個 IP 地址,還要配置跨域等問題,既復雜又容易出錯。

解決方案:使用 Nginx 做統一反向代理

我們可以通過部署一個 Nginx 服務來統一入口端口,例如統一通過 http://api.example.com:5053 訪問不同的后端接口,內部再根據請求路徑轉發給對應的服務。這樣,前端只需要記住一個地址和端口,調用 /api1/、/api2/、/api3/ 即可訪問不同的服務。

服務器端nginx安裝命令:

#  在 Ubuntu上安裝
sudo apt update
sudo apt install nginx -y# 在 CentOS上安裝
sudo yum install epel-release -y
sudo yum install nginx -y

Nginx 配置示例:
在服務器上安裝 Nginx 后,編輯配置文件(如 /etc/nginx/conf.d/api_gateway.conf),示例如下:
編輯命令:sudo vi /etc/nginx/nginx.conf

server {listen 5053;server_name api.example.com;# 代理開發者 A 的服務:本機 5051 端口location /api1/ {proxy_pass http://127.0.0.1:5051/api/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}# 代理開發者 B 的服務:本機 5351 端口location /api2/ {proxy_pass http://127.0.0.1:5351/api/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}# 代理開發者 C 的服務:遠程服務器location /api3/ {proxy_pass http://remote-server.com:8000/items/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}

請求映射關系

前端請求路徑實際代理后的路徑
http://api.example.com:5053/api1/xxxhttp://127.0.0.1:5051/api/xxx
http://api.example.com:5053/api2/xxxhttp://127.0.0.1:5351/api/xxx
http://api.example.com:5053/api3/xxxhttp://remote-server.com:8000/items/xxx

這樣做的好處是:

  • 安全性更高(隱藏內部服務細節)
  • 跨域問題由后端集中處理(CORS配置)
  • 負載均衡和路由管理更靈活
  • 前端無需處理多端口邏輯

Nginx常用命令:

操作命令說明
啟動 Nginxsudo systemctl start nginx啟動服務
停止 Nginxsudo systemctl stop nginx停止服務
重啟 Nginxsudo systemctl restart nginx重啟服務(配置變更后常用)
重新加載配置sudo nginx -s reload熱重載配置文件(不中斷服務)
查看狀態sudo systemctl status nginx查看服務是否運行中
查看版本nginx -v查看安裝版本
測試配置sudo nginx -t檢查配置文件語法是否正確

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

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

相關文章

Chrontel【CH7219A-BF】CH7219A USB-C和DP 1.4至HDMI 2.1協議轉換器,帶DSC解碼功能

G通用 D描述Chrontel 的 CH7219A 是一種低成本、低功耗的半導體器件 通過 USB Type-C 將 DisplayPort 信號轉換為 HDMI 2.0 連接器。這款基于 USB Type-C 的創新型 DisplayPort 接收器具有高 高性能DSC解碼器,集成HDMI 2.0發射器 專為 USB Type-C 轉 HDMI 2.0 轉換器…

瘋狂星期四文案網第26天運營日記

網站運營第26天,點擊觀站: 瘋狂星期四 crazy-thursday.com 全網最全的瘋狂星期四文案網站 運營報告 今日訪問量 30多ip,斷崖式下跌,習慣了。。 今日搜索引擎收錄情況 必應52個頁面,比昨日12 百度仍然只有首頁 谷歌收錄正常 …

元策聯盈:深耕金融領域,賦能行業發展?

元策聯盈:深耕金融領域,賦能行業發展元策聯盈在金融行業的深耕細作,不僅體現在為客戶提供優質服務上,更在于其對行業發展的積極推動和自身的不斷創新突破。行業貢獻與社會責任元策聯盈始終將社會責任融入企業發展的血脈之中。在助…

力扣-字母異位詞

這里我也是沒有太懂,只懂個大概,先統計p和當前窗口的字符,后主要在窗口大小固定為 p.length(),在 s 上滑動做文章,在s里找到p的長度大小,最后直接比較兩個頻率數組來判斷異位詞定長窗口做法class Solution …

華為數通HCIP

華為認證數通方向的 HCIP(華為認證 ICT 高級工程師)考試難度適中,既不像 HCIA(初級)那樣側重基礎概念,也不像 HCIE(專家級)需要復雜的綜合實驗和面試,但仍需要系統的知識…

在SQL SERVER 中,用SSMS 實現存儲過程的每日自動調用

在 SQL Server Management Studio (SSMS) 中實現每日自動調用存儲過程,需通過 ??SQL Server 代理作業??配置定時任務。以下是詳細操作步驟:🔧 一、啟用 SQL Server 代理服務(前置條件)??啟動服務??&#xff1a…

賽博算命之八字測算事業運勢的Java實現(四柱、五行、十神、流年、格局詳細測算)

個人主頁-愛因斯晨 文章專欄-賽博算命 最近學習人工智能時遇到一個好用的網站分享給大家: 人工智能學習 文末有投票,評論區有紅包哦! 前言 在前段時間更新了賽博算命系列,出乎我的意料反響很好。也受到廣大網友的贊賞&#xff0…

2025 騰訊廣告算法大賽 Baseline 項目解析

項目概述 2025 騰訊廣告算法大賽 Baseline,一個簡單的序列推薦系統,主要用于建模用戶和物品的交互序列,并利用多模態特征(文本、圖像等 embedding)來提升推薦效果。 核心文件功能 1. main.py - 主訓練腳本 負責模型訓練…

數據結構(11)棧和隊列算法題 OVA

一、概念與結構 循環隊列是一種特殊的隊列,首尾相連成環,也叫環形隊列。環形隊列具有以下三個特點: (1)隊頭刪除數據,隊尾插入數據。 (2)給定固定的空間,使用過程中不…

九聯UNT403HS_海思MV320處理器_安卓9-優盤強刷刷機包

九聯UNT403HS_海思MV320處理器_安卓9-優盤強刷刷機包前言:九聯UNT403HS,海思MV320芯片,已知有2種內存型號,分別是28G和216G。已知河南融合版本是28G,廣東版好像既有28G又有216G。理論上固件沒有本質區分,能…

Xilinx高性能低延時PCIe-DMA控制器IP,SGDMA,QDMA,RDMA,CDMA,V4L2驅動,視頻采集、AD采集

Multi-Channel High Performance PCIe QDMA&RDMA IP介紹基于PCI Express Integrated Block,Multi-Channel PCIe QDMA Subsystem實現了使用DMA地址隊列的獨立多通道、高性能Continous(CDMA)或Scather Gather DMA(SGDMA&#xf…

10、Docker Compose 安裝 MySQL

🐳 使用 Docker Compose 安裝 MySQL(含配置詳解與常見問題)標簽:#DockerCompose #MySQL #數據庫部署 #后端開發 #運維入門 #配置詳解 適合讀者:開發者、DevOps、新手運維人員📌 一、前言 在日常開發與部署中…

Dynamic A(D)算法深度剖析:動態環境下的路徑規劃革新

Dynamic A*(D*)算法深度剖析:動態環境下的路徑規劃革新 文章目錄 Dynamic A*(D*)算法深度剖析:動態環境下的路徑規劃革新 1. 引言:動態路徑規劃的核心挑戰與解決方案 1.1 動態環境的本質特征 1.2 D * 算法的誕生與核心價值 2. D * 算法核心原理深度解析 2.1 反向搜索機制…

前端框架Vue3(四)——組件通信及其他API

組件通信組件關系傳遞方式父傳子1. props2. v-model3. $refs4. 默認插槽、具名插槽子傳父1.props2.自定義事件3.v-model4.parent5.作用域插槽祖傳孫、孫傳祖1.$attrs2.provide、inject兄弟間、任意組件間1.mitt2.pinia【props】 概述:props是使用頻率最高的一種通信…

07【C++ 初階】類和對象(中篇) --- 類的默認成員函數

文章目錄前言類的6個默認成員函數1.構造函數1.1 構造函數特性1.1.1 函數名與類名相同1.1.2 無返回值1.1.3 對象實例化時編譯器自動調用對應的構造函數1.1.4 構造函數可以重載1.1.5 默認構造只能有一個1.1.6 默認構造的必要性1.2 構造函數的初始化列表2.析構函數2.1 析構函數特性…

第二次CISSP考試通過!

今天我終于臨時通過了 CISSP 考試!這第二次的精神壓力一點也不比第一次小。我在第 101 道題 時通過,還剩大約 30 分鐘。我當時真的以為自己又要像上次那樣時間不夠了。第一次考試的失敗經歷:第一次考試是我剛參加完為期 5 天的強化 Boot Camp…

USRP捕獲手機/路由器數據傳輸信號波形(上)

目錄: USRP捕獲手機/路由器數據傳輸信號波形(上) USRP捕獲手機/路由器數據傳輸信號波形(中) USRP捕獲手機/路由器數據傳輸信號波形(下) 一、前期準備 1.1 場景與系統 手機、路由器與天線的…

基于STM32F103的FM1702驅動程序

基于STM32F103微控制器與復旦微電子FM1702SL射頻讀卡芯片的驅動開發方案,整合了硬件配置、寄存器操作和通信協議實現:一、硬件連接設計 1. 管腳映射表FM1702SL引腳STM32F103引腳功能說明VDD3.3V電源輸入GNDGND地線SCKPA5(SPI1_SCK)SPI時鐘MISOPA6(SPI1_M…

京東商品評論API指南

一、引言京東商品評論API(JD.item_review)是京東開放平臺提供的重要接口,允許開發者獲取商品的詳細評論數據。通過該接口可以獲取包括評論內容、評分、評論時間、用戶昵稱等信息,為商品分析、用戶行為研究等提供數據支持?。二、接口概述1. 接口基本信息…

網絡編程概述與UDP編程

一、 網絡編程概述 1.1 概述 在現代軟件開發與系統交互場景里,基于 Socket 的網絡多進程通信占據核心地位,其適用場景廣泛且深入到各類數字化交互中: 直播場景:主播端通過 Socket 建立的網絡連接,將音視頻流以數據包…