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中的:

Apache Traffic Server 4.2.1/5.3.2上的坑!_第1张图片

大家在使用上述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上的坑!_第2张图片


你可能感兴趣的:(Apache,Traffic,Server)