在CentOS 6.3 64bit上安装ATS 5.3 LTS版本并测试
1.下載源碼
cd /usr/local/src
wget -d "http://mirror.bit.edu.cn/apache/trafficserver/trafficserver-5.3.0.tar.bz2"
tar jxvf trafficserver-5.3.0.tar.bz2
cd trafficserver-5.3.0
進入源碼目錄,閱讀README文件,獲取在CentOS 6.3上面的安裝指導,似乎看到的新東西不多,還是從官網安裝指導開始
https://cwiki.apache.org/confluence/display/TS/CentOS
2.安裝依賴包
yum -y install git gcc gcc-c++ autoconf automake libtool pkgconfig pcre-devel tcl-devel expat-devel openssl-devel
yum -y install perl-ExtUtils-MakeMaker
yum -y install libcap libcap-devel hwloc hwloc-devel
yum -y install libunwind libunwind-devel
3.確保系統日志開啟
使用下面的命令
service rsyslog status
查看系統日志有沒有打開,沒有就開啟,以避免下面啟動ATS出錯時沒有任何日志信息。
創建ATS運行的用戶名和組名
這一步非常關鍵,關系到后面make install步驟的順利性,故拿到前面來做。
新建用戶
useradd -s /sbin/nologin tserver
我們打算將tserver作為ATS所在的user和group名稱。使用如下命令檢測用戶組是否創建成功
cat /etc/passwd |cut -f 1 -d : | grep tserver
4.編譯安裝
首先使用./configure -h來查看支持
./configure --prefix=/opt/ats --with-user=tserver --with-group=tserver --enable-reclaimable-freelist --enable-debug --enable-experimental-plugins ?內網測試不加--enable-interim-cache?
make -j 4
make install -j 4
5.配置
主要有這幾個文件需要配置:
records.config,storage.config,logs_xml.config
我要達到的效果是正反向代理,自定義磁盤,自定義日志等功能。注意records.config文件有很大的精簡。
因為是公司內網虛擬機,配置較差,這里不對磁盤和緩存相關選項做配置了。
#records.configCONFIG proxy.config.http.server_ports STRING 8081 ? ? ?#跟線上保持一致
traffic_line -s proxy.config.reverse_proxy.enabled -v 0
traffic_line -s proxy.config.url_remap.remap_required -v 0 ? ? ? #1為只反向代理,0為正向+反向代理
traffic_line -s proxy.config.url_remap.pristine_host_hdr -v 0
traffic_line -s ?proxy.config.http.insert_request_via_str -v 1 ? ?
traffic_line -s ?proxy.config.http.insert_response_via_str -v 2 ? #會產生類似Via:http/1.1 localhost (ApacheTrafficServer/4.2.3 [cHs f ])的頭
traffic_line -s proxy.config.http.cache.required_headers -v 0 ? ? #配置在源服務器沒有定義緩存的情況緩存文件
traffic_line -s proxy.config.http.cache.enable_default_vary_headers -v 1
traffic_line -s proxy.config.cache.ram_cache_cutoff -v 40960 ? ? ?#非常關鍵,確定緩存命中是在RAM cache還是SSD中
CONFIG proxy.config.log.custom_logs_enabled INT 1
CONFIG proxy.config.log.squid_log_enabled INT 0
CONFIG proxy.config.log.xml_config_file STRING logs_xml.config
#logs_xml.config
<LogFormat>
? <Name = "access"/>
? <Format = "%<cqtq> %<ttms> %<pssc> %<sssc> [%<cqtt>] %<{X-Forwarded-For}cqh> \"%<cqtx>\" %<psql> \"%<pqsi>\" %<crc>:%<phr> %<{Referer}cqh> \"%<{User-Agent}cqh>\" %<psct>"/>
</LogFormat>
<LogObject>
? <Format = "access"/>
? <Filename = "access"/>
</LogObject>
6.添加環境變量和設置別名
echo "export PATH=/opt/ats/bin:$PATH" >> /etc/profile
更新配置文件
source /etc/profile
再次確認環境變量是否添加成功
echo $PATH
這樣的話,在命令行直接運行trafficserver start就可以識別了。
vim ~/.bashrc
在尾部加入
alias ats_db='cd /opt/ats/var/trafficserver;pwd'
alias ats_log='cd /opt/ats/var/log/trafficserver;pwd'
alias ats_conf='cd /opt/ats/etc/trafficserver;pwd'
alias ats_lib='cd /opt/ats/libexec/trafficserver;pwd'
alias ats_bin='cd /opt/ats/bin;pwd'
alias ats_stat='ps auxf | grep traffic | grep -v grep'
alias ats_ports='netstat -nltp | grep traffic | grep -v grep'
使文件生效
source ~/.bashrc
7.啟動測試
trafficserver start
當啟動OK后,使用下面的命令查看進程啟動情況,多試幾次,觀察traffic_server進程pid是否有變動,如果有變動就說明啟動過程有問題,需要排查詳細問題
ps auxf | grep traffic | grep -v grep
curl -o /dev/null -vx 127.0.0.1:8081 ?-H "Accept-Encoding: gzip,deflate,sdch" "http://news.sohu.com"
觀察是否獲取成功,如果獲取成功,連續執行3次同一個請求,觀察緩存狀態的變化情況,是否是下面的狀態碼改變?
[cMsSfW] ==> [cHs f ] ==> [cRs f ] ==> ...
然后觀察訪問日志中是否有3條相應的訪問記錄
再次觀察下面的幾個日志文件
diags.config 專門記錄系統診斷日志,比如緩存索引文件,hostdb文件,清除磁盤情況,緩存是否可用等
traffic.out 專門記錄控制臺相關的日志信息,比如使用的root目錄,發現比原來版本輸入日志信息減少了
現在沒有traffic_shell工具,但是增加了traffic_ctl,traffic_crashlog,traffic_via,traffic_layout等工具
這里特別提到另一個極其有用的工具traffic_crashlog,它隨同trafficserver中的那三個進程一起啟動,
時刻監視是否有traffic_server進程崩潰,如果出現崩潰現象,
就會在自動重啟traffic_server進程的同時,打印相關的段錯誤信息,主要內容包括CPU,信號,各線程調用堆棧,records.config中的配置信息等等。
總結
以上是生活随笔為你收集整理的在CentOS 6.3 64bit上安装ATS 5.3 LTS版本并测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 趣谈HTTP协议中的那些MIME hea
- 下一篇: 在CentOS 6.3 64bit上安装