原由在開發過程中,意外發現下面的TS API接口在ats 4.1.2上沒有定義,但在5.3.x中有定義
bool cacheable = TSHttpTxnIsCacheable(txnp, NULL, response);
遂決定在工作機ThinkPad上升級ATS到5..3.2版本.下面記錄了我升級過程和遇到問題並解決的過程.
全新安裝請參見ats 4.2.1版本
http://blog.csdn.net/tao_627/article/details/18953131
1.安裝依賴因為原來是ats 4.1.2,現在屬於升級,這步跳過。
2.配置,編譯和安裝./configure --with-group=nogroup --enable-reclaimable-freelist --enable-debug --enable-experimental-plugins
make -j 4
make install -j 4
如果是ats 6.1.1版本,去掉--enable-reclaimable-freelist參數, 因為相應的模塊已經被去掉了.其它的步驟下面完全相同.
3.配置對幾個配置文件做如下修改
在records.config中修改配置如下,沒有該配置選項就添加上:
CONFIG proxy.config.http.server_ports STRING 8081
CONFIG proxy.config.http.insert_request_via_str INT 1
CONFIG proxy.config.http.insert_response_via_str INT 2
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
CONFIG proxy.config.reverse_proxy.enabled INT 0
CONFIG proxy.config.url_remap.pristine_host_hdr INT 0
CONFIG proxy.config.url_remap.remap_required INT 0
remap.config中
maphttp://10.10.110.55:8081/cache/ http://{cache}:8081
maphttp://localhost/www.17dao.com http://www.17dao.com
增加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>
4.踩坑實錄開啟ats服務時,發現沒有traffic_cop進程
單獨gdb打開時,顯示個別動態庫加載失敗
但是,我發現這個庫已經存在在指定目錄下面, 進一步分析如下
這說明是動態庫造成的問題.因為更新或新增了動態庫,但是沒有更新系統的動態庫信息, 所以導致了上面的錯誤.
解決方法確認存在該動態庫, 並確保在/etc/ld.so.conf中可以找到, 然後ldconfig更新一下動態庫的索引信息就可以了.
再次打開ats服務
sudo trafficserver start
我們看到這時有3個進程了
為驗證ats的功能正常, 取一個url下載測試一下,發現一切正常
至此, ats成功升級到5.3.2版本了.下面是ats 6.1.1的截圖
參考文獻[1].https://cwiki.apache.org/confluence/display/TS/Ubuntu