nginx的正向與反向代理

正向代理與反向代理的區別? ? ?

雖然正向代理和反向代理都涉及代理服務器接收客戶端請求并向服務端轉發請求,但它們之間存在一些關鍵的區別:

正向代理:


????????在正向代理中,代理服務器代表客戶端向服務器發送請求,并將服務器端響應返回給客戶端。
客戶端需要配置請求發送至代理服務器,并且服務器不會直接知道客戶端的真實 IP 地址,只能看到代理服務器的 IP 地址。
正向代理通常用于繞過網絡訪問限制、保護客戶端隱私、實現匿名訪問等場景,例如訪問被封鎖的網站或保護內部網絡安全訪問外部網絡,常見的有路由器、防火墻等。


反向代理:


????????在反向代理中,代理服務器代表服務器接收客戶端請求,并將請求轉發給實際提供服務的服務器。代理服務器接收來自客戶端的請求,并決定將請求轉發給哪個后端服務器。
客戶端只知道代理服務器的 IP 地址,不知道提供服務的真實服務器。
反向代理通常用于負載均衡、緩存加速、安全策略、SSL 終結等場景,可以提高網站的性能、可用性和安全性。
總的來說,正向代理是客戶端選擇性使用的代理服務器,而反向代理是提供服務的服務器端使用的代理服務器。區別主要在于代理服務器代表誰和誰向誰轉發請求。

反向代理配置案例:

1、創建好一個訪問頁面

2、、配置反向代理

配置參數詳解:

        proxy_pass 表示真是服務器的IP地址,也就是web服務器的IP地址;proxy_set_header Host $http_host; 表示重新定義轉發給web服務器的請求頭部,即在請求頭部添加客戶端真實地址;proxy_set_header X-Real-IP $remote_addr; 表示記錄客戶端真實IP地址proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 表示記錄服務端反向代理服務器的ip地址proxy_connect_timeout 表示反向代理服務器對web服務器發起TCP三次握手的連接超時時間; proxy_send_timeout 表示web服務器給反向代理服務器返回資源過程中的超時時間proxy_read_timeout 表示TCP長連接的超時時間proxy_buffering 表示開啟緩存功能proxy_buffer_size 表示存放響應頭部的緩沖區proxy_buffers 表示內容緩沖區大小proxy_busy_buffers_size 表示用于向客戶端發送資源的緩沖區,反向代理服務器會劃分出一部分用于發送資源的緩沖區;
#       proxy_max_temp_file_size 256;表示用于存儲請求頭部的緩沖區,反向代理服務器會將超大的請求頭部在緩沖區內存儲成文件。

proxy_set_header 都是關于修改請求配置。而示例中的配置表示,反向代理服務器將自身ip地址與客戶端的真實IP地址一同添加到請求頭部,,再轉發給web服務器。

注意:nginx配置反向代理服務器之后,nginx不在提供web功能。

測試:通過訪問反向代理服務器IP來訪問web網站。

上圖顯示成功通過反向代理服務器IP訪問web網站,說明反向代理配置已經生效。

????????查看web服務器中的訪問日志,IP地址192.168.40.188在訪問日志中表示客戶端的IP地址。在訪問日志的結尾比平常多一個IP地址,這就是真實客戶端的IP地址,說明IP地址192.168.40.188是一個代理服務器IP地址。之前所以客戶端真實地址在訪問日志中出現,是因為之前對請求頭部信息的修改配置生效,nginx將代理ip地址與客戶端的真實IP地址都寫到了請求頭部中。web服務器收到帶有客戶端的真實ip地址的請求信息,就將客戶端的真實IP地址與代理IP地址一同寫入訪問日志。

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

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

相關文章

ctfshow-web入門-php特性(web104-web108)

目錄 1、web104 2、web105 3、web106 4、web107 5、web108 1、web104 需要傳入的 v1 和 v2 進行 sha1 加密后相等。 解法1: 這里都沒有判斷 v1 和 v2 是否相等,我們直接傳入同樣的內容加密后肯定也一樣。 ?v21 post: v11 拿到 flag…

SQL 多變關聯使用子查詢去重

不去重狀態 select a.*,b.recon_amt from free_settlement_first aleft join free_settlement_second b on a.settlement_first_id b.settlement_first_id 有2條數據出現了重復 使用子查詢去重 select a.*,b.recon_amt from free_settlement_first aleft join free_settlem…

Vue 最新動態!!!

大家好,我是CodeQi! 一位熱衷于技術分享的碼仔。 當Vue 3.4在六個月前發布時,整個前端開發社區都為之振奮。這次更新不僅帶來了許多新特性,還解決了許多開發過程中遇到的痛點。 然而,時間飛逝,隨著我在項目中不斷應用這些新特性,逐漸積累了很多寶貴的經驗和心得。 今…

一篇學通Axios

Axios 是一個基于 Promise 的 HTTP 客戶端,用于瀏覽器和 node.js 環境。它提供了一種簡單易用的方式來發送 HTTP 請求,并支持諸如請求和響應攔截、轉換數據、取消請求以及自動轉換 JSON 數據等功能。 Axios 名字的由來 Axios 的名字來源于希臘神話中的…

Linux操作系統入門(適用java軟件開發)

1.什么是操作系統? 操作系統(Operating System,簡稱 OS)是一種系統軟件,它管理和控制計算機硬件與軟件資源,為用戶和應用程序提供一個接口和環境來訪問計算機系統的服務和功能。操作系統的主要目標是提供一個方便、有…

探索性數據分析:使用Python與Pandas庫實現數據洞察

探索性數據分析:使用Python與Pandas庫實現數據洞察 引言 在當今數據驅動的時代,數據分析已成為決策制定、策略規劃和業務優化的關鍵環節。無論是商業智能、金融分析還是市場研究,數據分析都扮演著至關重要的角色。Pandas庫作為Python生態系統…

微積分-導數8(線性近似和微分)

線性近似 我們已經看到,在切點附近,曲線與其切線非常接近。事實上,通過放大可微函數圖上的某一點,我們注意到圖形看起來越來越像它的切線(見圖)。這一觀察是找到函數近似值的方法的基礎。 這個想法是&am…

Java [ 進階 ] JVM雙親委派機制?

目錄 ?探索Java進階 雙親委派機制? 理解 Java 的雙親委派機制 什么是雙親委派機制? 類加載器的層次結構 雙親委派機制的工作原理 優缺點分析 優點 缺點 一些面試題目: 什么是雙親委派機制? 雙親委派機制的工作流程是怎樣的&am…

monodepth代碼與原理對照實現

先實現demomonodepth/monodepth_simple.py at master mrharicot/monodepth GitHub import os os.environ[TF_CPP_MIN_LOG_LEVEL]0 這行代碼是為tensorflow設置環境變量TF_CPP_MIN_LOG_LEVEL,用來控制tensorflow c后端輸出的日志級別。0就是輸出所有級別的日志信息。包括(調…

vue2學習筆記3 - 開發環境知識補充:live server簡介

學習筆記1搭建開發環境中,在vs code里安裝了live server插件,后續多次使用open with live server來打開瀏覽器,展示代碼運行效果。本著知其然也要知其所以然的態度,稍稍了解了一下Live server。 什么是Live Server Live Server是…

探索Conda的依賴迷宮:包依賴樹的構建與解析

探索Conda的依賴迷宮:包依賴樹的構建與解析 引言 在復雜的軟件項目中,依賴管理是確保軟件正常運行的關鍵。Conda作為流行的Python包管理器,提供了強大的依賴樹功能,幫助用戶理解和管理包依賴關系。本文將詳細介紹如何在Conda中使…

個性化你的編碼世界:深度定制PyCharm主題與字體

個性化你的編碼世界:深度定制PyCharm主題與字體 引言 在編碼的旅途中,一個舒適且個性化的環境能夠顯著提升開發體驗。PyCharm作為業界領先的集成開發環境(IDE),提供了豐富的定制選項,允許用戶根據個人喜好…

力扣--20. 有效的括號

目錄 題目 思路 注意 題目 給定一個只包括 (,),{,},[,] 的字符串 s ,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。左括號必須以正確的順序閉合。每個右括…

DP討論——適配器模式

學而時習之,溫故而知新。 敵人出招(使用場景) 說是自己的程序對接第三方的庫,但是自己的代碼的接口設計完畢了,如何對接上? 你出招 適配器模式就是為此而生的——我覺得應該是該解決方法被命名為了適配…

滯后序列分析案例詳解

一個半小時 超出30分鐘 日期:2024-07-13 19:14:33 回放 摘要 Python在行為分析中的應用 主要講述了如何使用Python處理序列數據,以及如何結合定性分析和定量分析來全面分析課程內容。講者提到了一種叫做分層法的分類方法,該方法使用了布魯…

ArcGIS Pro SDK (九)幾何 2 坐標

ArcGIS Pro SDK (九)幾何 2 坐標 文章目錄 ArcGIS Pro SDK (九)幾何 2 坐標1 矢量極坐標2 獲取矢量傾角3 獲取矢量方位角4 向量運算5 2D 矢量操作6 生成器 環境:Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 1 矢量…

知識圖譜數據庫基本知識

文章目錄 知識圖譜數據模型知識圖譜查詢語言隨著知識圖譜規模的日益增長,數據管理愈加重要。一方面,以文件形式保存的知識圖譜顯然無法滿足用戶的查詢、檢索、推理、分析及各種應用需求;另一方面,傳統數據庫的關系模型與知識圖譜的圖模型之間存在顯著差異,關系數據庫無法有…

ctfshow-web入門-php特性(web96-web99)

目錄 1、web96 2、web97 3、web98 4、web99 1、web96 試了下通配、轉義、拼接、大小寫都不行 這里使用絕對路徑或者當前路徑繞過: ?u./flag.php ?u/var/www/html/flag.php 還可以使用 php 偽協議: ?uphp://filter/resourceflag.php 2、web97 關…

數據結構(Java):力扣Stack集合OJ題

1、括號匹配問題 . - 力扣(LeetCode) 1.1 思路分析 根據棧的先進后出原則,我們可以這樣解決問題: 遍歷字符串,遇見左括號就將左括號push入棧;遇見右括號就pop出棧,將出棧的元素和該右括號比較…

pyparsing開啟調試

在要匹配的表達后添加set_debug