AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

圖解「正向代理」的原理 + 實踐應用

來源: 責編: 時間:2023-09-20 21:55:45 266觀看
導讀你好,我是悟空。本文主要內容如下:圖片在工作中經常和正向代理和反向代理打交道,有必要總結下正向代理的原理和實踐應用了。(反向代理安排在下篇吧)如何理解正向代理代理(Proxy)服務通常被我們稱為正向代理服務,如下圖所示:圖

你好,我是悟空。tBM28資訊網——每日最新資訊28at.com

本文主要內容如下:tBM28資訊網——每日最新資訊28at.com

圖片圖片tBM28資訊網——每日最新資訊28at.com

在工作中經常和正向代理和反向代理打交道,有必要總結下正向代理的原理和實踐應用了。(反向代理安排在下篇吧)tBM28資訊網——每日最新資訊28at.com

如何理解正向代理

代理(Proxy)服務通常被我們稱為正向代理服務,如下圖所示:tBM28資訊網——每日最新資訊28at.com

圖片圖片tBM28資訊網——每日最新資訊28at.com

  • 客戶端:圖中的客戶端我用電腦和手機作為示意,客戶端指在計算機網絡中與服務器進行通信的一種計算機程序或設備。客戶端通常請求服務器提供某種服務,如獲取網頁、發送電子郵件、下載文件等。客戶端與服務器之間的通信通常遵循客戶端-服務器模型,其中客戶端發出請求,而服務器響應這些請求。
  • 站點:可以理解為網絡中的目標服務器,當客戶端想要訪問目標服務器的資源時,需要通過網絡通信才能獲取到資源。
  • 正向代理服務器:在客戶端和站點之間,起到了一個轉發請求的作用。正向代理服務器不支持外部對內部網絡的訪問請求。正向代理服務器和客戶端是緊密聯系的,我們工作中用到的 VPN(虛擬專用網絡) 就是一種正向代理的方式。
  • 箭頭:箭頭的方向代表訪問的方向。

大白話聊聊正向代理

一位企業老總,他有一位助理小李,當老總想要訂火車票時,就會委托小李幫忙訂票,當老總想要訂酒店時,小李就會負責查找合適的酒店并安排老總入住。助理小李幫老總辦了很多事情,也就是代理了一些事情,而助理小李就充當了一個代理服務器的角色。如下圖所示:tBM28資訊網——每日最新資訊28at.com

圖片圖片tBM28資訊網——每日最新資訊28at.com

正向代理的作用

企業可以使用正向代理來增強網絡安全、訪問控制、性能優化和隱私保護等方面的功能。以下是企業中如何使用正向代理的一些常見場景和方法:tBM28資訊網——每日最新資訊28at.com

  • 遠程辦公: 在遠程辦公環境中,企業可以使用正向代理來幫助員工安全地連接到公司內部網絡,訪問內部資源,而不必暴露公司的內部網絡直接在互聯網上。
  • 訪問控制和安全性: 企業可以在其網絡中部署正向代理服務器,以實施訪問控制策略。通過正向代理,可以限制員工訪問特定網站或互聯網資源,從而減少潛在的網絡威脅。這有助于保護企業免受惡意軟件、惡意網站和網絡攻擊的影響。
  • 內容過濾和緩存: 正向代理可以用于過濾和緩存網絡內容,以提高性能并減少帶寬消耗。代理服務器可以緩存常用的資源,例如網頁、圖像和視頻,從而減少對外部服務器的請求,提高用戶體驗。
  • 安全審計和監控: 企業可以使用正向代理來監視員工的網絡活動,以確保合規性和安全性。代理服務器可以記錄訪問日志,以便后續的安全審計和監控。
  • 反病毒和惡意軟件保護: 正向代理可以用于檢測和攔截網絡流量中的惡意軟件、病毒和惡意鏈接。這有助于保護企業內部網絡免受惡意軟件的傳播和感染。
  • 隱私保護: 企業可以使用正向代理來保護員工的隱私。代理服務器可以隱藏員工的真實IP地址,從而提高員工的在線隱私。
  • 訪問受限資源: 有些企業需要訪問特定地理位置或IP受限的互聯網資源。正向代理可以用于繞過這些限制,以訪問需要的資源。
  • 負載均衡: 企業可以使用正向代理來實現負載均衡,將客戶端請求分發到多個服務器,以提高性能和可用性。這對于高流量的企業應用程序和網站非常有用。

企業中如何使用正向代理

在企業中,正向代理工具用于多種場景,以增強網絡安全性、訪問控制、性能優化和隱私保護。以下是一些常見的正向代理工具和它們在不同場景中的用途:tBM28資訊網——每日最新資訊28at.com

  • Nginx: Nginx 是一款高性能的反向代理服務器,但也可以配置為正向代理。它通常被用于負載均衡、訪問控制和內容緩存。
  • 自建VPN: 一些企業和個人選擇自行搭建虛擬私人網絡(VPN)來實現正向代理功能。這可以通過使用開源VPN軟件如OpenVPN或商業VPN服務來實現。
  • CDN服務: 一些CDN(內容分發網絡)服務提供商也提供正向代理功能,以加速訪問、緩存內容和提供安全性。
  • Squid: Squid 是一個開源的代理服務器軟件,被廣泛用于企業和學校網絡中。它提供了強大的訪問控制、緩存和性能優化功能,常用于網絡管理和內容過濾。
  • CCProxy(若快代理服務器): CCProxy 是一款商業代理服務器軟件,又稱為"若快",它提供了訪問控制、帶寬控制和網絡加速功能。
  • TinyProxy: TinyProxy 是一個輕量級的代理服務器軟件,適用于小型網絡環境。它的配置相對簡單,適合快速搭建正向代理。
  • Glype: Glype 是一個基于Web的代理腳本,可以讓用戶通過瀏覽器訪問被封鎖的網站。它常被用于構建Web代理服務,以繞過互聯網審查。

項目中如何使用正向代理

以下是一個 Nginx 的正向代理的配置,tBM28資訊網——每日最新資訊28at.com

http {    server {        listen       80;        server_name  www.passjava.cn;        location / {            proxy_pass http://target_server;            proxy_set_header Host $host;        }    }}

上述配置表明當客戶端通過瀏覽器或其他方式發送請求到 www.passjava.cn 這個域名時,Nginx 將監聽 HTTP 請求的端口 80,并將這些請求代理到 target_server 指定的目標服務器。這是一個典型的正向代理配置,用于隱藏客戶端的真實 IP 地址,同時將請求轉發到其他服務器上。這在一些網絡安全和訪問控制方面非常有用。tBM28資訊網——每日最新資訊28at.com

真實場景的一個應用

我們項目中大量使用 Nginx 作為正向代理和反向代理,這里舉一個我用 Nginx 作為正向代理的真實案例。tBM28資訊網——每日最新資訊28at.com

背景

公司生產一些硬件設備,而這些設備在生產的過程中,需要調用我們后臺系統的接口,我們后臺系統所在的網絡和設備的網絡并不在同一個網段內,想要實現網絡互通,我們在設備和系統之間加了一層正向代理服務器,設備先將請求發送給代理服務器,由代理服務器將請求轉發給后臺系統。tBM28資訊網——每日最新資訊28at.com

解決方案

如下圖所示:tBM28資訊網——每日最新資訊28at.com

圖片圖片tBM28資訊網——每日最新資訊28at.com

設備 1 和設備 2 的 IP 在 192.168.1.0/24 IP 地址段內,HTTP 請求先發到代理服務器,然后轉發到后臺服務器集群的網關地址(192.168.52.123)。tBM28資訊網——每日最新資訊28at.com

代理服務器上有兩個網卡,和設備之間的網絡是通的,和服務器集群之間的網絡也是通的。這樣就能保證設備的請求能夠正常發送到系統了。tBM28資訊網——每日最新資訊28at.com

疑問:為啥不把后臺系統的服務器 IP 改成和設備同一網段?tBM28資訊網——每日最新資訊28at.com

答:問題出在不能保證設備和后臺系統在同一局域網內。有的設備是在其他局域網內生產的,即使在同一個網段內,但是是跨局域網的,設備和后臺系統也是無法連通的。tBM28資訊網——每日最新資訊28at.com

完整的 NGINX 配置如下:tBM28資訊網——每日最新資訊28at.com

圖片圖片tBM28資訊網——每日最新資訊28at.com

正向代理后如何獲取真實 IP

另外我們的系統還需要獲取設備的真實 IP,這就需要在 Nginx 加上配置:tBM28資訊網——每日最新資訊28at.com

# location 模塊中加入以下配置:proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

上述配置可以暴露客戶端的真實 IP 地址給目標服務器,特別是 proxy_set_header X-Real-IP $remote_addr; 和 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 這兩行配置。tBM28資訊網——每日最新資訊28at.com

讓我解釋一下這三行配置的含義:tBM28資訊網——每日最新資訊28at.com

  1. proxy_set_header Host $host;:這一行配置將客戶端請求中的 Host 頭部信息傳遞給目標服務器。這是正常的 HTTP 頭部信息傳遞,不涉及客戶端 IP 地址。
  2. proxy_set_header X-Real-IP $remote_addr;:這一行配置將客戶端的真實 IP 地址作為 X-Real-IP 頭部信息傳遞給目標服務器。這意味著目標服務器可以訪問到客戶端的真實 IP 地址。
  3. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;:這一行配置將客戶端的 IP 地址添加到 X-Forwarded-For 頭部信息中,并傳遞給目標服務器。這是為了記錄代理請求的前幾個客戶端的 IP 地址,通常包括客戶端的真實 IP 地址。

當目標服務器收到這些頭部信息時,它可以通過 X-Real-IP 或 X-Forwarded-For 頭部來獲取客戶端的真實 IP 地址。tBM28資訊網——每日最新資訊28at.com

容易誤以為的正向代理

比如我的網站項目 passjava.cn,項目是純靜態頁面,部署在了一臺服務器上。如下圖所示,當我在瀏覽器訪問這個域名時,請求會先經過 DNS 域名解析,拿到域名綁定的 IP 地址,而這個 IP 地址又是我購買的云服務器地址,在這個服務器上有網站的靜態頁面。tBM28資訊網——每日最新資訊28at.com

圖片圖片tBM28資訊網——每日最新資訊28at.com

以下是 Nginx 的配置:tBM28資訊網——每日最新資訊28at.com

server {    listen       80;    server_name  www.passjava.cn;    location / {        root   /home/ubuntu/docs;        index  index.html;    }}

我開始以為這是一個正向代理的配置,其實并不是,這個配置只是一個簡單的虛擬主機配置,用于托管靜態網站。這個配置定義了一個 Nginx 虛擬主機,用于處理來自 www.passjava.cn 域名的 HTTP 請求,并提供靜態網頁。tBM28資訊網——每日最新資訊28at.com

解釋下這些配置項含義:tBM28資訊網——每日最新資訊28at.com

  1. server { ... }:這是一個 server 塊,用于定義一個虛擬主機。每個 server 塊通常用于配置一個不同的虛擬主機,以處理特定域名或 IP 地址的請求。
  2. listen 80;:這一行指定了監聽的端口號,這里是 80,表示該虛擬主機將處理來自客戶端的 HTTP 請求,這是 HTTP 的標準端口號。
  3. server_name www.passjava.cn;:這一行定義了虛擬主機所處理的域名。在這個例子中,虛擬主機將處理來自 www.passjava.cn 域名的請求。當客戶端發送請求到這個域名時,Nginx 將使用這個 server 塊中的配置來響應請求。
  4. location / { ... }:這是一個 location 塊,它定義了如何處理特定 URI(統一資源標識符)路徑的請求。在這里,location / 匹配所有請求的根路徑。
  5. root /home/ubuntu/docs;:這一行指定了 Nginx 服務器上要提供的文件的根目錄。當客戶端請求根路徑時,Nginx 將在 /home/ubuntu/docs 目錄中查找文件來提供給客戶端。
  6. index index.html;:這一行指定了默認的索引文件,當客戶端請求的路徑是一個目錄時,Nginx 將嘗試提供 index.html 文件作為默認文檔。如果 /home/ubuntu/docs 目錄中存在 index.html 文件,它將作為默認文檔提供給客戶端。

注意:正向代理配置通常涉及將客戶端的請求代理到其他服務器,而不是提供自己的網頁內容。正向代理的配置會包括一些額外的代理設置,用于將請求轉發到目標服務器,而不是提供本地靜態文件。tBM28資訊網——每日最新資訊28at.com

- END -tBM28資訊網——每日最新資訊28at.com

關于我

InfoQ 簽約作者、藍橋簽約作者、阿里云專家博主、51CTO 紅人。tBM28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-10564-0.html圖解「正向代理」的原理 + 實踐應用

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: MQ黃金三劍客 Rabbit Rocket Kafka深入解密常見問題及功能對比指南

下一篇: 使用Diagrams畫架構圖,你會嗎?

標簽:
  • 熱門焦點
Top