1. 程式人生 > >反向代理(Apache Traffic Server 學習筆記 2)

反向代理(Apache Traffic Server 學習筆記 2)

一、反向代理的概念

    什麼是反向代理呢?其實,反向代理也就是通常所說的WEB伺服器加速,它是一種通過在繁忙的WEB伺服器和Internet之間增加一個高速的WEB緩衝伺服器(即:WEB反向代理伺服器)來降低實際的WEB伺服器的負載。典型的結構如下圖所示:


Web伺服器加速(反向代理)是針對Web伺服器提供加速功能的。它作為代理Cache,但並不針對瀏覽器使用者,而針對一臺或多臺特定Web伺服器(這也是反向代理名稱的由來)。實施反向代理(如上圖所示),只要將Reverse Proxy Cache裝置放置在一臺或多臺Web伺服器前端即可。當網際網路使用者訪問某個WEB伺服器時,通過DNS伺服器解析後的IP地址是Reverse Proxy Server的IP地址,而非原始Web伺服器的IP地址,這時Reverse Proxy Server裝置充當Web伺服器,瀏覽器可以與它連線,無需再直接與Web伺服器相連。因此,大量Web服務工作量被解除安裝到反向代理服務上。不但能夠防止外部網主機直接和web伺服器直接通訊帶來的安全隱患,而且能夠很大程度上減輕web伺服器的負擔,提高訪問速度。

二、反向代理和其它代理的比較

下面將對幾種典型的代理服務作一個簡單的比較。在網路上常見的代理伺服器有三種:

1、標準的代理緩衝伺服器

   一個標準的代理緩衝服務被用於快取靜態的網頁(例如:html檔案和圖片檔案等)到本地網路上的一臺主機上(即代理伺服器)。當被快取的頁面被第二次訪問的時候,瀏覽器將直接從本地代理伺服器那裡獲取請求資料而不再向原web站點請求資料。這樣就節省了寶貴的網路頻寬,而且提高了訪問速度。但是,要想實現這種方式,必須在每一個內部主機的瀏覽器上明確指明代理伺服器的IP地址和埠號。客戶端上網時,每次都把請求送給代理伺服器處理,代理伺服器根據請求確定是否連線到遠端web伺服器獲取資料。如果在本地緩衝區有目標檔案,則直接將檔案傳給使用者即可。如果沒有的話則先取回檔案,先在本地儲存一份緩衝,然後將檔案發給客戶端瀏覽器。

2、透明代理緩衝伺服器

   透明代理緩衝服務和標準代理伺服器的功能完全相同。但是,代理操作對客戶端的瀏覽器是透明的(即不需指明代理伺服器的IP和埠)。透明代理伺服器阻斷網路通訊,並且過濾出訪問外部的HTTP(80埠)流量。如果客戶端的請求在本地有緩衝則將緩衝的資料直接發給使用者,如果在本地沒有緩衝則向遠端web伺服器發出請求,其餘操作和標準的代理伺服器完全相同。對於Linux作業系統來說,透明代理使用Iptables或者Ipchains實現。因為不需要對瀏覽器作任何設定,所以,透明代理對於ISP(Internet伺服器提供商)特別有用。

3、反向代理緩衝伺服器

    反向代理是和前兩種代理完全不同的一種代理服務。使用它可以降低原始WEB伺服器的負載。反向代理伺服器承擔了對原始WEB伺服器的靜態頁面的請求,防止原始伺服器過載。它位於本地WEB伺服器和Internet之間,處理所有對WEB伺服器的請求,組織了WEB伺服器和Internet的直接通訊。如果網際網路使用者請求的頁面在代理伺服器上有緩衝的話,代理伺服器直接將緩衝內容傳送給使用者。如果沒有緩衝則先向WEB伺服器發出請求,取回資料,本地快取後再發送給使用者。這種方式通過降低了向WEB伺服器的請求數從而降低了WEB伺服器的負載。

三.反向代理工作原理

    反向代理伺服器位於本地WEB伺服器和Internet之間,

    當用戶瀏覽器發出一個HTTP請求時,通過域名解析將請求定向到反向代理伺服器(如果要實現多個WEB伺服器的反向代理,需要將多個WEB伺服器的域名都指向反向代理伺服器)。由反向代理伺服器處理器請求。反向代理一般只快取可緩衝的資料(比如html網頁和圖片等),而一些CGI指令碼程式或者PHP之類的程式不快取。它根據從WEB伺服器返回的HTTP頭標記來緩衝靜態頁面。有四個最重要HTTP頭標記:

        Last-Modified: 告訴反向代理頁面什麼時間被修改
        Expires: 告訴反向代理頁面什麼時間應該從緩衝區中刪除
        Cache-Control: 告訴反向代理頁面是否應該被緩衝
        Pragma: 告訴反向代理頁面是否應該被緩衝.
    例如:在預設情況下,ASP頁面返回"Cache-control: private.",所以ASP頁面時不會在反向代理伺服器快取的。

相關推薦

反向代理Apache Traffic Server 學習筆記 2)

一、反向代理的概念    什麼是反向代理呢?其實,反向代理也就是通常所說的WEB伺服器加速,它是一種通過在繁忙的WEB伺服器和Internet之間增加一個高速的WEB緩衝伺服器(即:WEB反向代理伺服器)來降低實際的WEB伺服器的負載。典型的結構如下圖所示:Web伺服器加速(

ATS快取配置Apache Traffic Server 學習筆記 2)——持續更新

records.config配置:允許TS操作客戶端請求的host頭部:CONFIG proxy.config.url_remap.pristine_host_hdr INT 0忽略伺服器端和客戶端的h

ATSApache Traffic Server 4.2)配置SSL

截止到現在,我們的網站使用 ATS 已經有2年多的時間了,ATS能夠非常高效的解決我們的問題,贊一個。 由於網站增加了https的訪問,原以為配置SSL應該挺簡單,後來才知道,英文水平太菜,導致走了很多彎路。 下面列一下我配置的步驟: 系統:CentOS ATS:4.2版本

誰說菜鳥不會資料分析入門篇)----- 學習筆記2結構為王:確定分析思路 4P 5W2H )

1、資料分析方法論 確定分析思路需要以營銷、管理等理論為指導,把這些跟資料分析相關的營銷、管理等理論統稱為資料分析方法論。 資料分析方法論主要用來指導資料分析師進行一次完整的資料分析,更多的是指資料分析思路,如從哪方面開展資料分析?各方面包含什麼內容和指標。 資料分析方法論主要

誰說菜鳥不會資料分析工具篇)----- 學習筆記2結構為王:確定分析思路)

1、資料分析方法論 確定分析思路需要以營銷、管理等理論為指導,把這些跟資料分析相關的營銷、管理等理論統稱為資料分析方法論。 資料分析方法論主要用來指導資料分析師進行一次完整的資料分析,更多的是指資料分析思路,如從哪方面開展資料分析?各方面包含什麼內容和指標。 資料分析方

Docker學習筆記之-部署.Net Core 3.1專案到Docker容器,並使用Nginx反向代理CentOS7)(二)

接著上一節沒有演示完的繼續,連結:Docker學習筆記之-部署.Net Core 3.1專案到Docker容器,並使用Nginx反向代理(CentOS7)(一) 演示步驟: 1,獲取nginx映象,並執行Nginx容器 2,根據上傳的專案生成映象檔案,並執行專案容器 3,配置Nginx反向代理相關對映,並對映

Apache Shiro安全許可權框架)學習筆記

簡介: Apache Shiro 是 Java 的一個安全(許可權)框架。• Shiro 可以非常容易的開發出足夠好的應用,其不僅可以用在JavaSE 環境,也可以用在 JavaEE 環境。• Shiro 可以完成:認證、授權、加密、會話管理、與Web 整合、快取等。• 下載:http://shiro.ap

Apache Commons Math3學習筆記2

多項式曲線擬合:org.apache.commons.math3.fitting.PolynomialCurveFitter類。 用法示例程式碼: // ... 建立並初始化輸入資料: double[] x = new double[...]; double[] y =

Apache Commons Math3學習筆記1)- 快速傅立葉變換

傅立葉變換:org.apache.commons.math3.transform.FastFourierTransformer類。 用法示例程式碼: double inputData = new double[arrayLength]; // ... 給inputDa

Apache Spark MLlib學習筆記六)MLlib決策樹類演算法原始碼解析 2

上篇說道建立分類決策樹模型呼叫了trainClassifier方法,這章分析trainClassifier方法相關內容 按照以下路徑開啟原始碼檔案: /home/yangqiao/codes/spark/mllib/src/main/scala/org/ap

sql server 學習筆記

pan class tab logs har drop null sql alter 1. 修改student表中sdept字段改為varchar類型,長度為30,並且不為空 1 alter table student alter column sdept varchar

【SQL Server學習筆記】事務、鎖定、阻塞、死鎖

body sqlserve distrib reset reads cli ast function pre http://blog.csdn.net/sqlserverdiscovery/article/details/7712068 Column nameData

java 學習筆記2 面向對象上)

awr ges abs nal mage 有效 面向對象 ima col 類和對象 類是某一批對象的抽象,可以把類理解成某種概念。對象是一個具體存在的實體。類和對象是面向對象的核心。 類定義的是多個實例的特征,類不是具體存在,實例才是具體存在。 定義類(class)的語法:

轉)Akka學習筆記

http lin post tar class cto iat data- 消息 Akka學習筆記系列文章:  《Akka學習筆記:ACTORS介紹》  《Akka學習筆記:Actor消息傳遞(1)》  《Akka學習筆記:Actor消息傳遞(2)》    《Akka學習筆

Nginx代理反向代理rpm包安裝)

服務器 apache nginx 反向代理 註意:情況1:當後端是獨立的php-fpm服務器模塊的話需要fastcgi協議情況2:當後端是LAMP的話,使用的就是Apache協議不需要開啟fastcgi模塊直接寫個location / {proxy_pass http://backserver

MYSQL學習筆記2)多表連接查詢

mysql3種連接方式的區別:INNER JOIN(內連接,或等值連接):獲取兩個表中字段匹配關系的記錄。LEFT JOIN(左連接):獲取左表所有記錄,即使右表沒有對應匹配的記錄。RIGHT JOIN(右連接): 與 LEFT JOIN 相反,用於獲取右表所有記錄,即使左表沒有對應匹配的記錄。3個表連接查詢

一)Oracle學習筆記—— 表和表空間

最大 更改 默認 oracle spa mil 步驟 font lte 1. 表空間 一個數據庫可以有多個表空間,一個表空間裏可以有多個表。表空間就是存多個表的物理空間;可以指定表空間的大小位置等。 1.1 創建表空間語句 create tablespace t

三)Oracle學習筆記—— sql語句

dna 聯合 com .com 外連接 color 分組查詢 cot 語句 0. scott 用戶默認表介紹 scott用戶Tables目錄下包含四張表 1. insert(插入)語句 給指定列插入數據: insert into de

四)Oracle學習筆記—— 常見函數

出現 3.4 date 常用 字符串類型 添加 轉換 sign 首字符 1. 字符串類型及函數 字符類型分 3 種,char(n) 、varchar(n)、varchar2(n) ; char(n)固定長度字符串,假如長度不足 n,右邊空格補齊; varchar(

數據通信基礎物理層)學習筆記

-m 進制 app func 物理 方便 控制 ews 失真 傳輸數據系統 系統組成 收發器: ? 連接發送端的收發器實現將數據轉換成信號的過程 ? 連接接收端的收發器實現將信號還原成數據的過程 信道:信號傳播通道