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

nginx配置前端請(qǐng)求轉(zhuǎn)發(fā)到指定的后端ip方式

 更新時(shí)間:2026年05月13日 09:33:20   作者:tuokuac  
文章主要解釋了Nginx配置中如何通過location規(guī)則將前端靜態(tài)資源和后端接口請(qǐng)求進(jìn)行分流,并詳細(xì)描述了請(qǐng)求轉(zhuǎn)發(fā)到后端的具體過程,包括rewrite規(guī)則、代理協(xié)議設(shè)置、請(qǐng)求頭透?jìng)鳌⒋淼刂分付笆≈卦嚈C(jī)制等

nginx conf配置

配置把“前端靜態(tài)文件”和“后端接口”統(tǒng)一收在 同一個(gè) server{} 里,通過 兩條 location 做分流,其中 /api 這條 location 用到了一點(diǎn)“小技巧”把路徑裁掉后再轉(zhuǎn)發(fā)。

下面按執(zhí)行順序逐句拆解,告訴你“請(qǐng)求是怎么被轉(zhuǎn)發(fā)到 127.0.0.1:8081 的”。

1、全局上下文

worker_processes  1;          # 只啟 1 個(gè) worker 進(jìn)程(單核開發(fā)機(jī)夠用)
events { worker_connections 1024; }  # 每個(gè) worker 同時(shí)維持 1024 條連接
http { … }                    # 下面所有指令都屬于 http 層

2、監(jiān)聽端口與主機(jī)名

server {
    listen       8080;        # 瀏覽器訪問 http://localhost:8080
    server_name  localhost;
    …
}

3、前端靜態(tài)資源定位

location / {
    root   html/hmdp;         # 把 “/” 映射到 $NGINX_HOME/html/hmdp
    index  index.html index.htm;
}
  • 請(qǐng)求 http://localhost:8080/ → nginx 在 html/hmdp/index.html 找文件并返回。
  • 所有 JS/CSS/圖片只要路徑不以 /api 開頭,都走這條規(guī)則。

4、后端接口轉(zhuǎn)發(fā)(核心)

location /api { … }

當(dāng) URI 以 /api 開頭時(shí),進(jìn)入該上下文,下面每一步都決定了“如何轉(zhuǎn)發(fā)”。

4.1 剝離前綴

rewrite /api(/.*) $1 break;
  • 正則把 /api/user/login 捕獲成 /user/login 并存入 $1

break 表示不再重新搜索 location,在當(dāng)前 location 內(nèi)繼續(xù)執(zhí)行。

結(jié)果:nginx 內(nèi)部把 URI 改成 /user/login,但瀏覽器地址欄仍是 /api/user/login

4.2 設(shè)置代理協(xié)議版本

proxy_http_version 1.1;

開啟 HTTP/1.1,才能使用長(zhǎng)連接(keep-alive),減少反復(fù)握手。

4.3 打開請(qǐng)求頭透?jìng)?/p>

proxy_pass_request_headers on;

默認(rèn)就是 on,寫在這里為了顯式強(qiáng)調(diào):瀏覽器發(fā)來的所有頭(Cookie、Authorization…)都會(huì)原樣送到后端。

4.4 指定上游地址

proxy_pass http://127.0.0.1:8081;
  • 把已經(jīng) rewrite 過的 /user/login 直接發(fā)給本機(jī) 8081 端口。
  • 如果這里寫成 http://backend 就會(huì)走下面定義的 upstream 負(fù)載均衡,但作者注釋掉了。

4.5 失敗重試

proxy_next_upstream error timeout;

只有寫 proxy_pass http://backend 且 upstream 里有多臺(tái)機(jī)器時(shí),這條才會(huì)觸發(fā)“換下一臺(tái)重試”。目前只有一臺(tái),寫不寫效果一樣。

4.6 keep-alive 連接池

keepalive_timeout   30s;
keepalive_requests  1000;

告訴 nginx“與后端 8081 保持長(zhǎng)連接,最多復(fù)用 1000 次或 30 s 超時(shí)再關(guān)閉”,減少 TCP 三次握手開銷。

5、upstream 塊(備用)

upstream backend {
    server 127.0.0.1:8081 max_fails=5 fail_timeout=10s weight=1;
}
  • 目前只有一臺(tái),實(shí)際沒用到。
  • 如果想水平擴(kuò)容,再寫一行 server 127.0.0.1:8082 …,然后把 proxy_pass http://127.0.0.1:8081 改成 proxy_pass http://backend 即可自動(dòng)輪詢+故障摘除。

6、錯(cuò)誤頁

error_page 500 502 503 504 /50x.html;
location = /50x.html { root html; }

后端 8081 掛掉或返回 50x 時(shí),nginx 會(huì)把 html/50x.html 的內(nèi)容返回給瀏覽器,避免裸錯(cuò)。

7、請(qǐng)求完整生命周期舉例

瀏覽器輸入:


http://localhost:8080/api/user/login

nginx 監(jiān)聽 8080,收到 GET /api/user/login

匹配 location /api → 進(jìn)入該上下文

rewrite 把 URI 改成 /user/login

proxy_pass http://127.0.0.1:8081 → 發(fā)請(qǐng)求 GET /user/login 給后端

后端返回 JSON → nginx 原樣返給瀏覽器(因?yàn)?default_type application/json 只是響應(yīng)頭兜底,實(shí)際后端返回什么 Content-Type 就按什么走)

一句話總結(jié):

“先 rewrite 去掉 /api 前綴,再用 proxy_pass 把剩余路徑轉(zhuǎn)發(fā)到 127.0.0.1:8081,同時(shí)開啟 HTTP1.1 長(zhǎng)連接和失敗重試機(jī)制”——這就是該配置實(shí)現(xiàn)“前端請(qǐng)求轉(zhuǎn)發(fā)給后端”的全部秘密。

不用在IDEA里把“127.0.0.1:8081”寫死到代碼里;

IDEA 只負(fù)責(zé)把 Spring Boot(或你用的框架)啟動(dòng)在 8081 端口即可,剩下的由 Nginx 來“敲門”。

1、IDEA 側(cè)該做什么

保證項(xiàng)目 application.yml / application.properties 里端口是 8081:

server:
  port: 8081
  • 直接點(diǎn) ?? RunDebug,讓服務(wù)在 8081 端口處于 LISTEN 狀態(tài)。

2、驗(yàn)證端口是否已開啟

# macOS / Linux
lsof -i:8081
# Windows
netstat -ano | findstr 8081

看到 LISTEN 就說明 IDEA 已經(jīng)把后端程序跑起來了,Nginx 隨時(shí)可以把 /api 請(qǐng)求轉(zhuǎn)發(fā)過來。

3、什么時(shí)候才需要在 IDEA 里配“外部地址”

本地調(diào)試前端頁面,但想讓前端直接調(diào) IDEA 里的后端(不走 Nginx),

才在前端 .envvite.config 里寫:

VITE_API_BASE = 'http://127.0.0.1:8081'

這只是開發(fā)階段的瀏覽器→后端直連,與 Nginx 無關(guān)。

一旦用 Nginx 做反向代理,前端就統(tǒng)一訪問 http://localhost:8080/api/...,由 Nginx 轉(zhuǎn)發(fā)到 IDEA 的 8081,代碼/IDEA 側(cè)無需再感知 127.0.0.1:8081。

一句話總結(jié):

IDEA 只要把項(xiàng)目跑在 8081 端口就行,不需要也不推薦把“127.0.0.1:8081”硬編碼到后端代碼里;Nginx 自己會(huì)來“敲門”。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • nginx 配置虛擬主機(jī),實(shí)現(xiàn)在一個(gè)服務(wù)器可以訪問多個(gè)網(wǎng)站的方法

    nginx 配置虛擬主機(jī),實(shí)現(xiàn)在一個(gè)服務(wù)器可以訪問多個(gè)網(wǎng)站的方法

    下面小編就為大家分享一篇nginx 配置虛擬主機(jī),實(shí)現(xiàn)在一個(gè)服務(wù)器可以訪問多個(gè)網(wǎng)站的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • nginx?http?499錯(cuò)誤碼詳解以及解決辦法

    nginx?http?499錯(cuò)誤碼詳解以及解決辦法

    HTTP狀態(tài)碼出現(xiàn)499錯(cuò)誤有多種情況,499錯(cuò)誤是什么?這篇文章主要給大家介紹了關(guān)于nginx?http?499錯(cuò)誤碼以及解決辦法的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • NGINX基于cookie針對(duì)同一域名進(jìn)行分流轉(zhuǎn)發(fā)

    NGINX基于cookie針對(duì)同一域名進(jìn)行分流轉(zhuǎn)發(fā)

    本文介紹了利用NGINX基于cookie進(jìn)行多環(huán)境分流的方法,通過在Docker中部署兩個(gè)后端NGINX容器,并在前端NGINX配置中設(shè)置map規(guī)則,根據(jù)cookie值將請(qǐng)求分發(fā)到不同后端,感興趣的可以了解一下
    2025-07-07
  • Nginx的流式響應(yīng)配置實(shí)現(xiàn)小結(jié)

    Nginx的流式響應(yīng)配置實(shí)現(xiàn)小結(jié)

    nginx是一款自由的、開源的、高性能的HTTP服務(wù)器和反向代理服務(wù)器,本文主要介紹了Nginx的流式響應(yīng)配置實(shí)現(xiàn)小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • 詳解nginx服務(wù)器http重定向到https的正確寫法

    詳解nginx服務(wù)器http重定向到https的正確寫法

    本篇文章主要介紹了nginx服務(wù)器http重定向到https的正確寫法 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 若依部署Nginx和Tomcat全過程

    若依部署Nginx和Tomcat全過程

    文章總結(jié)了兩種部署方法:Nginx部署和Tomcat部署,Nginx部署包括打包、將dist文件拉到指定目錄、配置nginx.conf等步驟,Tomcat部署包括前端打包、將文件拉到webapps目錄、訪問測(cè)試等步驟,文章還解決了前后端無法通信和404問題
    2024-12-12
  • Nginx緩存&優(yōu)雅清除緩存問題

    Nginx緩存&優(yōu)雅清除緩存問題

    本文詳細(xì)介紹了Nginx的緩存配置,包括緩存文件的存儲(chǔ)路徑、緩存的有效期、哪些請(qǐng)求走緩存、哪些請(qǐng)求不緩存,以及如何刪除緩存,同時(shí),還提供了一個(gè)綜合案例來說明如何配置和使用Nginx緩存
    2025-03-03
  • 基于Nginx實(shí)現(xiàn)一個(gè)灰度上線系統(tǒng)的示例代碼

    基于Nginx實(shí)現(xiàn)一個(gè)灰度上線系統(tǒng)的示例代碼

    本文主要介紹了基于Nginx實(shí)現(xiàn)一個(gè)灰度上線系統(tǒng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Nginx實(shí)現(xiàn)外網(wǎng)訪問內(nèi)網(wǎng)的步驟詳解

    Nginx實(shí)現(xiàn)外網(wǎng)訪問內(nèi)網(wǎng)的步驟詳解

    外網(wǎng)瀏覽器與內(nèi)網(wǎng)是不通的,但是外網(wǎng)與中間過渡服務(wù)器是通的,中間過渡服務(wù)器與內(nèi)網(wǎng)服務(wù)器是通的,這樣在外網(wǎng)訪問過渡服務(wù)器時(shí),過渡服務(wù)器再跳轉(zhuǎn)到后臺(tái)服務(wù)器,本文給大家介紹了Nginx外網(wǎng)訪問內(nèi)網(wǎng)如何實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2023-10-10
  • 詳解Nginx搭建圖片服務(wù)器過程

    詳解Nginx搭建圖片服務(wù)器過程

    本篇文章給大家圖文詳細(xì)講解了Nginx搭建圖片服務(wù)器的過程以及中間遇到的問題處理方法,一起跟著小編學(xué)習(xí)下吧。
    2017-12-12

最新評(píng)論

白银市| 县级市| 灌云县| 锦屏县| 翁源县| 东安县| 洛扎县| 文安县| 湘阴县| 安宁市| 咸阳市| 辽阳县| 鹿泉市| 麦盖提县| 友谊县| 敖汉旗| 波密县| 余江县| 宣武区| 万源市| 全州县| 宜丰县| 金平| 原阳县| 宣恩县| 丰县| 肥东县| 武山县| 云霄县| 达日县| 顺昌县| 山西省| 长春市| 安溪县| 元阳县| 龙游县| 乌兰浩特市| 宁化县| 孟州市| 密山市| 习水县|