Nginx - 正向vs反向代理

參考:

https://blog.csdn.net/william_n/article/details/127387009

AI問答??

Nginx 正向代理 vs 反向代理詳解??


??1. 正向代理(Forward Proxy)??

??定義??

  • ??客戶端主動配置??的代理服務器,代表客戶端向外部服務器發送請求。
  • ??隱藏客戶端真實 IP??,突破訪問限制(如翻墻)。

??工作原理??

客戶端 → 正向代理 → 互聯網 → 目標服務器
  • ??客戶端??明確知道自己使用了代理(如瀏覽器設置代理服務器)。
  • ??目標服務器??看到的是代理服務器的 IP,而非客戶端真實 IP。

??典型用途??

  1. ??企業內網訪問外網??(所有員工流量經過公司代理)。
  2. ??科學上網??(通過代理訪問被封鎖的網站)。
  3. ??緩存加速??(代理服務器緩存常用資源)。

??Nginx 配置正向代理??

Nginx ??默認不支持??正向代理(需額外模塊如 ngx_http_proxy_connect_module):

server {listen 3128;  # 代理端口resolver 8.8.8.8;  # DNS解析服務器location / {proxy_pass http://$http_host$request_uri;  # 轉發到目標地址proxy_set_header Host $http_host;}
}
  • ??客戶端??需手動配置代理(如瀏覽器設置 SOCKS5://代理IP:3128)。

??2. 反向代理(Reverse Proxy)??

??定義??

  • ??服務端部署??的代理服務器,代表后端服務器接收客戶端請求。
  • ??隱藏后端真實 IP??,實現負載均衡、安全防護等。

??工作原理??

客戶端 → 反向代理 → 后端服務器(Server 1/2/3...)
  • ??客戶端??不知道后端服務器的存在(以為代理就是目標服務器)。
  • ??后端服務器??看到的是代理服務器的 IP,而非客戶端 IP。

??典型用途??

  1. ??負載均衡??(將請求分發到多個后端服務器)。
  2. ??隱藏后端架構??(防止直接暴露服務器IP)。
  3. ??SSL 終止??(在代理層處理 HTTPS 加解密)。
  4. ??緩存靜態資源??(減輕后端壓力)。

??Nginx 配置反向代理??

server {listen 80;server_name example.com;location / {proxy_pass http://backend_servers;  # 轉發到后端服務器組proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}upstream backend_servers {server 192.168.1.100:8080;  # 后端服務器1server 192.168.1.101:8080;  # 后端服務器2server 192.168.1.102:8080;  # 后端服務器3
}

??3. 核心區別對比??

??特性????正向代理????反向代理??
??配置方??客戶端(如瀏覽器設置代理)服務端(Nginx 服務器配置)
??隱藏對象??隱藏客戶端 IP隱藏后端服務器 IP
??客戶端感知??客戶端知道自己在用代理客戶端無感知
??典型場景??科學上網、內網訪問外網負載均衡、API 網關、CDN
??Nginx 支持??需額外模塊(非原生支持)原生支持(proxy_pass 指令)

??4. 高級用法示例??

??(1) 反向代理 + 負載均衡??

upstream backend {least_conn;  # 最少連接算法server 10.0.0.1:80 weight=3;  # 權重3server 10.0.0.2:80;server 10.0.0.3:80 backup;    # 備用服務器
}server {listen 80;location / {proxy_pass http://backend;}
}

??(2) 反向代理 + SSL 終止??

server {listen 443 ssl;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/key.pem;location / {proxy_pass http://backend;  # 明文轉發到后端}
}

??(3) 正向代理(需編譯模塊)??

# 編譯 Nginx 時添加模塊
./configure --add-module=/path/to/ngx_http_proxy_connect_module

??5. 如何選擇???

  • ??用正向代理??:當需要客戶端主動通過代理訪問外部資源(如爬蟲、翻墻)。
  • ??用反向代理??:當需要保護后端服務器、負載均衡或統一入口(如 Web 應用)。

??6. 常見問題??

??Q1: Nginx 能同時做正向和反向代理嗎???

  • 可以,但需分開配置(正向代理需額外模塊支持)。

??Q2: 反向代理會影響性能嗎???

  • 會增加少量延遲(代理層處理),但可通過緩存和負載均衡優化。

??Q3: 如何調試代理問題???

  • ??檢查日志??:
    tail -f /var/log/nginx/access.log
    tail -f /var/log/nginx/error.log
  • ??驗證請求頭??:
    curl -v http://example.com

掌握這兩種代理模式,你就能靈活應對各種網絡架構需求! 🚀

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

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

相關文章

裝飾器模式在Spring中的案例

設計模式-裝飾器模式 裝飾器模式所解決的問題是,在不改變原來方法代碼的情況下對方法進行修飾,從而豐富方法功能。 Spring架構中的裝飾器模式 在Spring架構中,以線程池進行舉例。 線程池 線程池是一個對線程集中管理的對象,集中管…

云原生與 AI 驅動下的數據工程新圖景——解讀 DZone 2025 數據工程趨勢報告【附報告下載】

在 AI 技術從“實驗性”走向“企業級落地”的關鍵階段,數據工程作為底層支撐的重要性愈發凸顯。近日,DZone 發布的《2025 數據工程趨勢報告》(Scaling Intelligence with the Modern Data Stack)通過對全球 123 位 IT 專業人士的調…

9.5 機器翻譯與數據集

語言模型是自然語言處理的關鍵,而機器翻譯是語言模型最成功的基準測試,因為機器翻譯正是將輸入序列轉換成輸出序列的序列轉換模型的核心問題。序列轉碼模型在各類現代人工智能應用中國呢發揮著至關重要的作用,因此我們將其作為本章剩余部分和…

Linux 內核鏡像與啟動組件全解析:從 vmlinux 到 extlinux.conf

🧠 Linux 內核鏡像與啟動組件全解析:從 vmlinux 到 extlinux.conf 在嵌入式 Linux 系統中,啟動流程涉及多個關鍵文件和機制。不同的鏡像格式和配置文件承擔著不同的職責,從內核編譯到 bootloader 加載,再到系統啟動。本…

【系統分析師】2024年下半年真題:論文及解題思路

更多內容請見: 備考系統分析師-專欄介紹和目錄 文章目錄 試題一:論devops在企業信息系統開發中的應用 試題二:論系統業務流程分析方法及應用 試題三:論軟件測試方法及應用 試題四:論信息系統運維管理 試題一:論devops在企業信息系統開發中的應用 1、概要敘述你參與管理和…

AI GEO 實戰:借百度文小言優化,讓企業名稱成搜索熱詞

在當今數字化浪潮中,企業的線上曝光度和搜索可見性至關重要。百度作為國內占據主導地位的搜索引擎,其推出的大模型文小言蘊含著巨大的潛力。通過巧妙運用 AI GEO(生成式引擎優化)策略,企業完全有可能讓自己的公司名稱成…

文件操作知識點總結

目錄 1.為什么使用文件 2.什么是文件? 2.1 程序文件 2.2 數據文件 2.3 文件名 3.二進制文件和文本文件 4.文件的打開和關閉 4.1 流和標準流 4.1.1 流 4.1.2 標準流 4.2 文件指針 4.3 文件的打開和關閉 4.3.1 fopen函數 4.3.2 fclose函數 5.文件的順序…

oracle認證有哪幾種?如何選擇

Oracle(甲骨文)不僅是全球領先的數據庫軟件巨頭,更是企業級數據管理的代名詞,獲得Oracle認證,證明可從事Oracle數據庫服務器的數據操作和管理等工作。下面給大家詳細其主要認證類型及其在職業發展中的含金量&#xff0…

AppTest邀請測試測試流程

相比AppGallery邀請測試,AppTest邀請測試具備以下全新能力:若您同時發布了多個測試版本,AppTest支持測試版本自動升級到最新的測試版本。您可以選擇將當前最新在架版本的應用介紹截圖展示給測試人員,視覺效果更好,提升…

硬件 - oring多電源切換

目錄 一、ORing電路 1.1 ORING 電路 1.2 ORING 電路關鍵部分 二、多電源切換 2.1 主要思路 2.2 適用場景 一、ORing電路 1.1 ORING 電路 中文常稱 “或環電路” 或 “并聯冗余電路”是一種電源并聯冗余拓撲結構 核心功能:將多路獨立電源的輸出 “并聯整合”&a…

Qt多語言翻譯實戰指南:常見陷阱與動態切換解決方案

問題背景 在Qt項目國際化過程中,開發者經常會遇到各種翻譯邏輯問題,特別是需要實現運行時語言動態切換功能時。一個典型場景是:程序默認英文顯示,加載中文翻譯文件后界面變為中文,但再次切換回英文時卻失敗。本文將深入…

機器人要增加力矩要有那些條件和增加什么

機器人要增加力矩要有那些條件和增加什么進行詳細講解 好的,這是一個非常專業且重要的問題。為機器人增加力矩(通常指提升關節輸出扭矩)不是一個簡單的部件替換,而是一個涉及動力鏈、結構、控制和散熱的系統性工程。 以下將詳細講…

spring集成aes加密、rsa加密

文章目錄spring集成對稱加密spring集成rsa加密spring集成對稱加密 encrypt:key: aaabbb # 只配置這個參數就實現了對稱加密salt: 333444 # 這個可以不配置spring集成rsa加密 例如apollo,如果沒有配置encrypt.key,那么apollo不配置應該也是可以的&#…

OpenSTL PredRNNv2 模型復現與自定義數據集訓練

OpenSTL PredRNNv2 模型復現與自定義數據集訓練 概述 本文將詳細介紹如何復現 OpenSTL 中的 PredRNNv2 模型,并使用自定義的 NPY 格式數據集進行訓練和預測。我們將從環境配置開始,逐步講解數據預處理、模型構建、訓練過程和預測實現,最終實現…

Linux內核IPv4隧道模式封裝機制剖析

概述 在Linux網絡棧中,XFRM(Transform)子系統負責實現IPsec等安全協議的功能。其中,xfrm4_mode_tunnel.c是實現IPv4隧道模式封裝的核心模塊,為IPv4數據包提供隧道模式的封裝和解封裝能力。本文將深入分析這一模塊的實現機制。 模塊架構與功能 該模塊通過注冊到XFRM框架…

OPC Client第10講:實現主界面;獲取初始界面傳來的所有配置信息config【C++讀寫Excel:xlnx;ODBC;緩沖區】

接前面代碼內容: OPC Client第6講(wxwidgets):Logger.h日志記錄文件(單例模式);登錄后的主界面_wx.logger-CSDN博客 OPC Client第8講:OPC UA;KEPServerEX創建OPC服務器…

快速入門HarmonyOS應用開發(一)

目錄 前言 一、準備工作 二、實戰開發 2.1、Navigation簡介 2.2、頁面路由開發 2.2.1、創建常量 2.2.2、創建字符串資源 2.2.3、創建float資源 2.2.4、創建color資源 2.2.5、創建數據實體 2.2.6、創建頁面路由表 2.2.7、創建Navigation根容器 2.2.8、創建NavDesti…

AI 進課堂 - 語文教學流程重塑

AI 進課堂 - 語文教學流程重塑執教語文十余年,備課案頭的參考書堆得比學生作業本還高,批改作文時紅筆芯換得比粉筆還勤。 直到去年把 JBoltAI 請進課堂,那些重復機械的工作突然有了新解法,連課堂上孩子們的眼神都亮了許多 —— 這…

用戶是否可以同時使用快照和備份來保護云服務器數據安全?

在云計算環境中,云服務器已成為企業和個人數據存儲、應用部署和業務運營的重要平臺。隨著業務數據量的不斷增長,數據安全和業務連續性成為用戶關注的核心問題。云服務器提供的快照和備份功能為用戶提供了有效的數據保護手段,但很多人會疑問&a…

RDS-MYSQL,這個RDS是什么?和mysql有什么區別?

好的,這是一個非常常見且重要的問題。我用最通俗易懂的方式給你解釋清楚。 一、大白話解釋 你可以把 MySQL 和 RDS MySQL 的關系,想象成:MySQL:就像是你自己買零件組裝的一臺電腦。 你需要自己挑選CPU、內存、硬盤、主板&#xff…