1. 程式人生 > >Nginx教程(7) 正向代理與反向代理【總結】

Nginx教程(7) 正向代理與反向代理【總結】

資料 用戶訪問 認證 origin 訪問者 發送 -128 負載 行為

1、前言

  最近工作中用到反向代理,發現網絡代理的玩法還真不少,網絡背後有很多需要去學習。而在此之前僅僅使用了過代理軟件,曾經為了訪問google,使用了代理軟件,需要在瀏覽器中配置代理的地址。我只知道有代理這個概念,並不清楚代理還有正向和反向之分,於是趕緊學習一下,補充一下知識。首先弄清楚什麽是正向代理,什麽是反向代理,然後是二者在實際使用中展示的方式是什麽樣的,最後總結一下正向代理用來做什麽,反向代理可以做什麽。

2、正向代理

  正向代理類似一個跳板機,代理訪問外部資源。

技術分享

舉個例子:

  我是一個用戶,我訪問不了某網站,但是我能訪問一個代理服務器,這個代理服務器呢,他能訪問那個我不能訪問的網站,於是我先連上代理服務器,告訴他我需要那個無法訪問網站的內容,代理服務器去取回來,然後返回給我。從網站的角度,只在代理服務器來取內容的時候有一次記錄,有時候並不知道是用戶的請求,也隱藏了用戶的資料,這取決於代理告不告訴網站。

  客戶端必須設置正向代理服務器,當然前提是要知道正向代理服務器的IP地址,還有代理程序的端口。

  例如之前使用過這類軟件例如CCproxy,http://www.ccproxy.com/ 需要在瀏覽器中配置代理的地址。

技術分享

總結來說:正向代理 是一個位於客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發送一個請求並指定目標(原始服務器),然後代理向原始服務器轉交請求並將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設置才能使用正向代理。

  正向代理的用途:

  (1)訪問原來無法訪問的資源,如google

(2) 可以做緩存,加速訪問資源

  (3)對客戶端訪問授權,上網進行認證

  (4)代理可以記錄用戶訪問記錄(上網行為管理),對外隱藏用戶信息

例如CCProxy用途:

技術分享

3、反向代理

  初次接觸方向代理的感覺是,客戶端是無感知代理的存在的,反向代理對外都是透明的,訪問者者並不知道自己訪問的是一個代理。因為客戶端不需要任何配置就可以訪問。

  反向代理(Reverse Proxy)實際運行方式是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個服務器。

反向代理的作用:

(1)保證內網的安全,可以使用反向代理提供WAF功能,阻止web攻擊

大型網站,通常將反向代理作為公網訪問地址,Web服務器是內網

技術分享

(2)負載均衡,通過反向代理服務器來優化網站的負載

技術分享

4、二者區別

借用知乎兩張圖來表達:https://www.zhihu.com/question/24723688

技術分享

技術分享

技術分享

技術分享

5、nginx的反向代理

  nginx支持配置反向代理,通過反向代理實現網站的負載均衡。這部分先寫一個nginx的配置,後續需要深入研究nginx的代理模塊和負載均衡模塊。

nginx通過proxy_pass_http 配置代理站點,upstream實現負載均衡。

技術分享

參考資料:

http://z00w00.blog.51cto.com/515114/1031287

http://blog.csdn.net/m13666368773/article/details/8060481

6、nginx的反向代理

nginx同樣可以實現代理上網的功能,配置如下:


user www;
worker_processes 1;
error_log /var/log/nginx/error.log debug;
 
events {
    use epoll;
    worker_connections 1024;
}
 
http {
    resolver 8.8.8.8;
    server {
        listen 8088;
        location / {
            proxy_pass http://$http_host$request_uri;
        }
    }
}

nginx實現代理上網,有三個關鍵點必須註意,其余的配置跟普通的nginx一樣
1.增加dns解析resolver

2.增加無server_name名的server

3.proxy_pass指令

具體實現步驟:
1.把如下配置填到你的配置文件http作用域,

2.重啟nginx使配置文件生效

3.設置ie代理

技術分享

4.可以使用代理上網了。

可以訪問http://ip.quancha.cn檢測代理是否生效
使用nginx代理上網後

技術分享

轉自:http://www.cnblogs.com/Anker/p/6056540.html

Nginx教程(7) 正向代理與反向代理【總結】