文/趙永明
搭建緩存服務器解流量問題(上)
文/趙永明
高校校園網Web訪問的要求和壓力不斷增長。一方面校園網應用系統要能滿足高并發查詢請求;另一方面校園網內用戶對外網Web應用訪問量也在日益上升。于是對高性能的代理(Proxy)服務器、緩存(Cache)服務器的需求也應運而生。Squid和Nginx都是廣泛使用的代理(緩存)服務器,但是還有一個高性能的同類軟件Apache Traffic Server仍未被廣泛了解。
互聯網的發展日新月異,網站的數量和網站的數據量都在瘋漲。網站的流量如何管理?帶寬如何才能更好的利用?服務器的各個層面性能如何發揮到極致?筆者將從一個CDN運維人員的角度,來告訴大家如何使用Apache Traffic Server解決這些棘手的問題。
Apache Traffic Server(下文中簡稱為TS)是一個高性能、高效率、可擴展的,能夠支持HTTP/1.1 協議的代理(緩存)服務器。各種Proxy/Cache平臺都有優缺點,關鍵是根據用戶的實際需求環境選擇一個恰當的進行使用。
在TS的企業用戶中,最大一部分用戶為CDN服務器,因此其網站加速功能(即反向代理服務器)在整個體系中占有非常重要的地位,TS為了更好的解決ISP級別的用戶的管理與使用,采用remap 的方法來進行反向代理配置。所謂的remap是對用戶的請求的URL和真實的源URL之間進行映射,如我們使用TS來加速網站image.zymlinux.net的訪問,我們將需要告訴TS,如果用戶請求image.zymlinux.net,TS應該從什么地方取URL。TS中的remap系統即完成這個轉換過程。下面以實際配置為例來講解remap的使用方法:

TS的進程控制系統、命令介紹:
為做到ISP級別的穩定性,TS設計了一套復雜的進程管理系統,正常運行的TS系統包含3個主進程:traffic_cop traffic_manager traffic_server。
traffic_server負責處理用戶請求。
traffic_manager負責管理traffic_server的健康穩定運行,并在非正常情況下,負責重啟traffic_server進程。并負責處理用戶的管理命令。
traffic_cop監管traffic_manager運行。
用戶的管理命令通過traffic_line traffic_shell等工具,提交給traffic_manager,并得到執行。
TS的cluster模式:
TS作為企業級的系統在運行中,很多情況下是以集群運行的,因此TS設計了一套cluster組件,完成集群運行中的管理需求和海量內容緩存的需求。TS集群支持3種工作模式: 全cluster集群;管理cluste集群;獨立服務器。
TS的集群模式具有如下特點:
TS的集群是無master的集群,任何集群成員可以自由加入或退出,任何一臺機器宕機不會造成整個集群服務中斷。集群通訊可以采用專用的內部通訊網卡/網絡以減少對外網絡IO的壓力。
集群內部通訊使用TCP連接復用機制,確保內部互聯資源最少化,即一個集群的內部互聯每個機器要維持n-1個TCP連接。

集群能夠對緩存的內容進行一致性hash,從而將IO分散到集群內的所有機器上,并且在任何一臺機器宕機的情況下,整個集群的hash不會產生波動。
安裝:
TS官方目前并沒有提供RPM包等二進制版本,我們以當前業內最常用的CentOS 5.5 64位系統為例進行TS的編譯安裝。另:http://zymlinux.net/trafficserver/下有已經打包好的RPM包可以供測試使用。
準備工作:
CentOS 5.5 64位系統,簡單安裝,不啟用RAID、軟RAID等
在apache官網下載TS的源碼包:http://trafficserver. apache.org/downloads.html

TS可以作為很多角色配置使用,首先以CDN常用的網絡加速服務器(反向代理服務器),加速cdn.zymlinux.net為需求配置一個TS的服務。


第二次配置,上面的配置為最初始配置,TS將使用/ usr/local/var/trafficserver目錄作為默認存儲設備,生成一個256M的cache.db文件作為緩存的存儲。修改配置,使用硬盤sd[b-f]為存儲設備:

2. 由于TS默認以nobody:root權限運行,而CentOS的硬盤屬主是root:disk,屬性是660,因而TS默認設置無法直接讀寫硬盤設備。修改系統設置以允許TS直接使用物理設備,如可以采用修改sd[b-f]為任何人可寫:
chmod go+rw /dev/sd{b..f}
3. 重新啟動服務,以使TS采用新的硬盤:
trafficserver restart
(作者單位為淘寶網)
Apache Traffic Server特點
TS是運營商級別的高性能proxy/cache服務器,充分考慮到商業運營環境中的業務、用戶需求。
TS的緩存效率高,響應快,硬件資源利用率高。
TS代理支持長連接、連接復用、過濾規則、映射、甚至7層hash和負載均衡、Cluster,能夠支持各種復雜的業務模式。
API很方便的支持各種環節的自由處理,并高度模塊化,用戶可以根據協議需要基于TS做二次開發,以達成定制需求。
TS目前的開發團隊是有著10多年CDN運營、開發經驗的專業團隊,更有全球最大的CDN商業公司的大力支持,最好的開源組織Apache基金會嚴格管理。
TS代碼遵循Apache授權,對企業用戶友好!Apache授權被業內公認為是僅次于BSD授權的對企業用戶最友好的授權之一。