1. 程式人生 > >ats 反向代理和重定向

ats 反向代理和重定向

enable server redirect 替換 不同 所在 移動 rod 規則設置

作為反向代理緩存,ats代表源服務器提供的請求。 ats的配置方式使客戶端看起來像普通的原始服務器。

了解反向代理緩存
通過轉發代理緩存, ats代表請求內容的客戶端隊裏對源服務器的web請求.反向代理緩存(也成服務器加速)不同在於ats 代表存儲內容的源服務器充當代理緩存。ats配置為向外作為客戶端嘗試連接的源服務器。在典型情況下,源服務器的主機名解析為ats服務器,流量服務器直接面向客戶端提供服務請求,必要時從真實源服務器獲取內容。

反向代理解決方案
有許多中方式將ats配置為反向代理。
1. 降低原始服務器的負載;
2. 在地裏位置較遠的地區提供有效的服務;
3. 為包含敏感信息的源服務器提供安全性;

HTTP反向代理
通過將 ats服務器用DNS解析為源服務器地址來實現。

處理源服務器重定向響應
源服務器通常會將重定向響應發送回瀏覽器,將它們重定向到不同的頁面。 例如,如果原始
服務器過載,則可能會將瀏覽器重定向到負載較小的服務器。 當網頁移動到不同位置時,源服務
器也會重定向。 當Traffic Server配置為反向代理時,它必須重新發送來自源服務器的重定向,
以便將瀏覽器重定向到Traffic Server而不是其他原始服務器。

要重新發送重定向,Traffic Server使用反向映射規則。 除非您啟用了
proxy.config.url_remap.pristine_host_hdr (默認設置)
否則通常應為每條映射規則設置反向映射規則

使用HTTP請求的映射規則
ats對http反向代理使用了兩種類型的映射規則:

map rule
映射規則將客戶端請求中的URL轉換為內容所在的URL.當ats處於反向代理模式並收到http客戶端請求時, 它首先從相關聯URL 和header頭構造完整的請求URL. 然後, ats 通過將完整請求URL與其在remap.config的目標URL列表進行
比較來查找匹配項。要使請求URL與目標URL匹配,必須滿足以下條件:
1. 兩個URL的方案必須相同;
2. 兩個URL中的主機必須相同。如果請求URL中包含非限定主機名,則它
永遠不會與具有完全限定主機名的目標URL匹配;
3. 兩個URL中的端口必須相同。如果URL中未指定端口,則使用URL方案的
默認端口。
4. 目標URL的路徑部分必須與請求URL路徑的前綴匹配;

如果ats找到匹配項,則會將請求URL轉換為映射規則中列出的替換URL:
它設置請求URL的主機和路徑以匹配替換URL.
如果URL包含路徑前綴,則ats將刪除與目標路徑匹配的路徑的前綴,並將其替換為替換URL
中的路徑。如果兩個映射與請求URL匹配,則ats 將應用remap.config中列出的第一個映射。

reverse-map rule
反向映射規則將源服務器重定向影響中的URL轉換為指向ats, 以便將客戶端重定向到ats,
而不是直接訪問源服務器。

例如, 如果www.molasses.com上的原始服務器上有目錄/pub, 並且客戶端向/pub發送請求
到該源服務器,則源服務器可能會通過發送Header Location來回復重定向:
http://realhost.com/pub 讓客戶端知道它所請求的目錄,而不是文檔(重定向的常見用途是規範
化URL, 以便客戶端可以正確地為文檔添加書簽)

ats使用reverse_map規則來阻止客戶(從源服務器接收重定向) 繞過ats 並直接訪問源服務器
。在許多情況下,客戶端會碰壁,因為realhost.com並不解析給客戶端( 例如,因為它在防火墻
屏蔽的端口上運行,或者因為它在不可路由的LAN IP上運行).

映射和反向映射規則都包含目標(原始)URL和替換(目標)URL。在映射規則中,目標URL指向
ats, 替換URL指定原始內容的位置。在反向映射規則中,目標URL指定原始內容的位置,替換
URL指向ats. ats在位於ats配置目錄中的remap.config中存儲映射規則。

修改remap.config
traffic_ctl config reload

啟用HTTP反向代理
要啟用http 反向代理,需要設置:
1. CONFIG proxy.config.reverse_proxy.enabled INT 1
2. traffic_ctl config reload

設置可選的HTTP反向代理選項
ats在records.config中提供了幾個反向代理配置選項,
1. 配置ats 以在轉換期間在請求中保留客戶端主機頭信息.
proxy.config.url_remap.pristine_host_hdr;

2. 將ats配置為僅向映射規則中列出的源服務器提供請求。因此,不會提供對映射規則中未列出
的原始服務器的請求。
proxy.config.url_remap.remap_required

3. 指定備用URL, 來自較舊客戶端的傳入請求(例如不提供主機頭的傳入請求)將定向到該URL.
proxy.config.header.parse.no_host_url_redirect.

重定向HTTP請求
可以將ats配置為重定向http請求,而無需聯系任何源服務器。例如,
將http://www.urltraseek.com所有請求重定向到http://www.server1.com/products/portal/search/
,那麽www.urltraseek.com的所有http請求都會直接轉到
www.server1.com/eproducts/portal/search.

可以將ats配置為執行永久或臨時重定向。永久重定向通知瀏覽器URL(通過返回301狀態碼),以便瀏覽器可以更新書簽。臨時重定向僅向瀏覽器通知當前請求的URL更改(返回307狀態碼)

eg.永久重定向www.server1.com的所有http請求到www.server2.com
redirect http://www.server1.com http://www.server2.com

ats 反向代理和重定向