Apache Traffic Server 4.2.1/5.3.2上的坑!
問題一:
現象描述:
昨天在CentOS 6.3 64位虛機上成功安裝ATS 4.2.1上無法正常啟動?但是安裝一切正常。使用trafficserver start啟動后,最后顯示啟動失敗,沒有任何錯誤日志或是錯誤提示信息。經過研究trafficserver這個腳本,也沒有發現問題。
解決方法:
今天被老大解決了,原來是我們公司內部的那臺服務器上沒有開啟syslog服務,導致錯誤日志無法打印。traffic_cop 依賴 syslog 服務。要先啟動
service rsyslog start
補記:
今天在ATS文檔官網地址
http://trafficserver.readthedocs.org/en/latest/admin/working-log-files.en.html#understanding-traffic-server-log-files
了解到,ATS通常會記錄三種類型的日志,訪問日志,錯誤日志和系統日志。系統日志使用syslog守護進程記錄的,以CentOS為例,該守護進程為rsyslog,它會在/etc/rsyslog.conf配置文件中指定日志文件為/var/log/messages,所有的日志都會記錄在/var/log/messages文件中。
問題二:
在Ubuntu 14.04上安裝ATS 4.2.1,發現如下錯誤
> libhwloc not linked properly on ubuntu 13.10: > /usr/bin/ld: ../lib/ts/.libs/libtsutil.so: undefined reference to symbol 'hwloc_get_type_depth' > /usr/lib/x86_64-linux-gnu/libhwloc.so: error adding symbols: DSO missing from command line解決方法:
暫無
問題三:
插件中使用TSUrlHostGet和TSMimeHdrFieldFind(bufp, hdr_loc, TS_MIME_FIELD_HOST, TS_MIME_LEN_HOST);獲取url的host時,會有差異,前者個別域名獲取不出來,后者可以正常獲取。前者獲取不出來的域名比如有
http://a.autoimg.cn/s?lp=10191&_v_TypeId=2353&_v_ad_ProvinceAreaID=-1&_v_ad_BBS_AreaName=-1&_v_brandID=8&_v_areaPropertyProvince=0&_v_ad_BuyStageID=&_v_ad_PriceIntervalID=&_v_ad_LevelID=&_v_ad_UserT%20ypeID=&_v_ad_PriceDirectionalID=-1&_v_ad_UserBrandID=&_a_ad_CarlevelID=15&_v_ad_BigBrandID=&area=211099
下面的Authproxy/Utils代碼截圖很清楚地給出了正確獲取host的通常步驟,首先從MIME field獲取,如果沒有,就使用url中的:
大家在使用上述API開發插件時一定要注意。
問題四:
接口TSMimeHdrFieldValueAppend在ats 5.3.2上面的使用問題。
在replace-header插件中用到TSMimeHdrFieldValueAppend接口來修改或創建一個mimi field,在設置它的值時,需要設置一個index值,我發現該插件代碼使用的是-1,這會造成assert失敗導致ats崩掉,應該設置為0就沒有問題。
總結
以上是生活随笔為你收集整理的Apache Traffic Server 4.2.1/5.3.2上的坑!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用希捷DiscWizard格式化3TB
- 下一篇: Ubuntu 14.04 64位安装深度