日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
Nginx正向代理與反向代理實戰(zhàn)

1. 正向代理與反向代理的區(qū)別
1.1 什么是代理服務器?
所謂代理服務器就是位于發(fā)起請求的客戶端與原始服務器端之間的一臺跳板服務器,正向代理可以隱藏客戶端,反向代理可以隱藏原始服務器。

西夏ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

上面描述的還不是特別了解,接下來我們就認識一下正向代理和反向代理的區(qū)別

1.2 正向代理的概念
正向代理,也就是傳說中的代理,他的工作原理就像一個跳板,簡單的說,我是一個用戶,我訪問不了某網站,但是我能訪問一個代理服務器,這個代理服務器呢,他能訪問那個我不能訪問的網站,于是我先連上代理服務器,告訴他我需要那個無法訪問網站的內容,代理服務器去取回來,然后返回給我。從網站的角度,只在代理服務器來取內容的時候有一次記錄,有時候并不知道是用戶的請求,也隱藏了用戶的資料,這取決于代理告不告訴網站。

結論就是:正向代理:客戶端 <一> 代理 一>服務端 正向代理,是一個位于客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發(fā)送一個請求并指定目標(原始服務器),然后代理向原始服務器轉交請求并將獲得的內容返回給客戶端。

1.3 反向代理的概念
例如:用戶訪問 http://www.test.com/readme,但 www.test.com 上并不存在 readme 資源,它是偷偷從另外一臺服務器上取回來,然后作為轉交的內容返回給用戶,但用戶并不知情。這里所提到的 www.test.com 這個域名對應的服務器就設置來反向代理功能。

結論就是:客戶端 一>代理 <一> 服務端 反向代理正好相反,對于客戶端而言它就像是原始服務器,并且客戶端不需要進行任何特別的設置??蛻舳讼蚍聪虼砻臻g(name-space)中的內容發(fā)送普通請求,接著反向代理將判斷向何處(原始服務器)轉交請求,并將獲得的內容返回給客戶端,就像這些內容原本就是它自己的一樣。

網友的神圖,加深理解

1.4 兩者區(qū)別
從用途上來講:

  • 正向代理的典型用途是為在防火墻內的局域網客戶端提供訪問 Internet 的途徑。正向代理還可以使用緩沖特性減少網絡使用率。
  • 反向代理的典型用途是將防火墻后面的服務器提供給 Internet 用戶訪問。反向代理還可以為后端的多臺服務器提供負載平衡,或為后端較慢的服務器提供緩沖服務。另外,反向代理還可以啟用高級 URL 策略和管理技術,從而使處于不同的 web 服務器系統(tǒng)的 web 頁面同時存在于同一個 URL 空間下。

從安全性來講:

  • 正向代理允許客戶端通過它訪問任意網站并且因此客戶端自身,因此你必須采取安全措施以確保為經過授權的客戶端提供服務。
  • 反向代理對外都是透明的,訪問者并不知道自己訪問的是一個代理。

總結:

  • 開放的反向代理應用: Nginx 和 Nat123。Nginx 是單純的反向代理,需要自行搭建發(fā)現代理服務才能使用,效果高。Nat123 是結合來 NAT 和反向代理的應用,可以直接使用,解決80端口問題等,速度快。

2. Nginx 正向代理與反向代理實戰(zhàn)
2.1 正向代理配置場景演示
正向代理很常見,我們正常上網就是一種正向代理。 接下來我們演示正向代理的一個場景:

首先在A服務器(IP:192.168.1.110)的Nginx設置訪問控制,訪問控制之前訪問 A 下的test.html是這樣的,如下:

  1. 在A服務器的Nginx修改配置文件,加入一個判斷語句,如果訪問A的的 IP 不是 192.168.1.44 (B 服務器IP)則返回403.
 
 
 
 
  1. location / {
  2.   if ( $remote_addr !~* "^192\.168\.1\.44") {
  3.     return 403;
  4.   }
  5.   root html;
  6.   index index.html index.htm;
  7. }

添加后reload一下nginx再訪問test.html,如下:

此時,在 A服務器 的本地瀏覽器就是被限制來,訪問不了該資源。

  1. 接下來,在 B服務器 上修改Nginx配置文件,添加 resolver 和 proxy_pass ,設置如下:
 
 
 
 
  1. server {
  2.   listen 8080;
  3.   server_name localhost;
  4.   resolver 8.8.8.8;
  5.   location / {
  6.     proxy_pass http://$http_host$request_uri;
  7.   }
  8.   error_page 500 502 503 504 /50x.html;
  9.   location = /50x.html {
  10.     root /usr/share/nginx/html;
  11.   }
  12. }

resolver 為 DNS 解析,這里填寫的IP 為 Google 提供的免費 DNS服務器的IP地址 proxy_pass 配置代理轉發(fā)

至此便是配置了B服務器所有訪問根一級的請求全部代理轉發(fā)對應到 $http_host$request_uri 去了, $http_host 就是我們要訪問的主機名, $request_uri 就是我們后面所加的參數。

簡單來說就是相當于配置好了我們請求B服務器,B服務器再去請求我們所請求的地址。

那么接下來我們來看一下結果,我們在本地配置好代理,我這里是mac系統(tǒng),可以從網絡設置中選擇高級,然后選擇代理。(這里是在 A服務器配置代理)

結果證明,此時在 A服務器 的客戶端已經可以成功訪問 A 服務器的資源。

以上就是正向代理的一個場景演示,這個過程中可以知道,我們客戶端是想要 A 的資源,但是 A 的資源只有 B 能拿到,便讓 B 代理去幫助我們訪問 A 的資源。整個過程 A 只知道 B 拿了它的資源,并不知道客戶端拿到。

2.2 反向代理配置場景演示
反向代理的演示更為簡單一些。

  1. 首先我們新建一個test.conf的配置文件,啟動對應這個配置文件的服務:
 
 
 
 
  1. server {
  2.   listen 8080;
  3.   server_name localhost;
  4.   location / {
  5.     root html;
  6.     index index.html index.htm;
  7.   }
  8.   error_page 500 502 503 504 404 /50x.html;
  9.   location = /50x.html {
  10.     root /usr/share/nginx/html;
  11.   }
  12. }

可以看到 server 里 listen 的端口是8080,這里假設我的服務器本身不對外開放8080端口,只開放了80端口。所以此時訪問 test.html 結果是訪問不到的.

  1. 修改Nginx的默認配置文件,添加 proxy_pass 設置如下:
 
 
 
 
  1. server {
  2.   listen 80;
  3.   server_name localhost;
  4.   location / {
  5.     root html;
  6.     index index.html index.htm;
  7.   }
  8.   #設置代理
  9.   location ~ /test.html$ {
  10.     proxy_pass http://127.0.0.1:8080;
  11.   }
  12.   error_page 500 502 503 504 404 /50x.html;
  13.   location = /50x.html {
  14.     root /usr/share/nginx/html;
  15.   }
  16. }

此時便可以訪問8080端口配置的資源了,如下:

以上便完成了一個反向代理的演示,這個過程中我們可以知道,客戶端想要訪問的是 test.html,但是 test.html 實際上是 8080 端口下配置的,中間經過了代理才能拿到。也就是說客戶端并不知道中間經歷了什么代理過程,只有服務端知道。客戶端只知道他拿到了 test.html 也就是8080端口下配置的資源。

3. 總結
經過對正向代理和反向代理概念上的理解、區(qū)別,以及在Nginx下演示操作一遍,相信你可以深刻體會到正向代理與反向代理的區(qū)別,以及在Nginx下代理的簡單配置。

正向代理和反向代理的區(qū)別在于代理的對象不一樣,正向代理的代理對象是客戶端,反向代理的代理對象是服務端。總結一下:

  • 代理服務器站在客戶端那邊就是正向代理
  • 代理服務器站在服務器那邊就是反向代理
  • Nginx 通過 proxy_pass 可以設置代理服務。

分享題目:Nginx正向代理與反向代理實戰(zhàn)
分享鏈接:http://www.dlmjj.cn/article/cdesodh.html