阅读684 返回首页    go 阿里云 go 技术社区[云栖]


squid 日志内容详解

squid

0 Comments

squid 日志内容详解

cat /var/log/squid/access.log|gawk ‘{print $4}’|sort|uniq -c|sort -nr

93083 TCP_MISS/200

33858 TCP_IMS_HIT/304

13938 TCP_HIT/200

5920 TCP_REFRESH_HIT/304

4443 TCP_CLIENT_REFRESH_MISS/304

3263 TCP_MISS/304

3078 TCP_MEM_HIT/200

2842 TCP_REFRESH_HIT/200

2665 TCP_REFRESH_MISS/200

2603 TCP_MISS/302

2227 TCP_CLIENT_REFRESH_MISS/200

2098 TCP_MISS/500

1802 TCP_MISS/301

967 TCP_MISS/404

946 TCP_NEGATIVE_HIT/404

562 TCP_MISS/204

206 TCP_MISS/503

188 TCP_MISS/502

101 TCP_NEGATIVE_HIT/403

93 TCP_MISS/504

84 TCP_MISS/206

81 TCP_IMS_HIT/200

76 TCP_MISS/403

66 TCP_CLIENT_REFRESH_MISS/404

59 TCP_MISS/400

57 TCP_REFRESH_MISS/302

41 TCP_NEGATIVE_HIT/400

20 TCP_REFRESH_MISS/000

18 TCP_MISS/307

13 TCP_CLIENT_REFRESH_MISS/206

12 TCP_MISS/000

10 TCP_MISS/401

9 TCP_DENIED/400

8 TCP_MISS/202

7 TCP_SWAPFAIL_MISS/200

5 TCP_MISS/303

4 TCP_CLIENT_REFRESH_MISS/500

3 TCP_REFRESH_MISS/404

3 TCP_NEGATIVE_HIT/504

3 TCP_NEGATIVE_HIT/500

3 TCP_MEM_HIT/302

2 TCP_MISS/600

2 TCP_MEM_HIT/206

2 TCP_CLIENT_REFRESH_MISS/403

1 TCP_HIT/302

以上的一个命令可以用于分析Squid日志,命令返回结果当中,如果看到很多的TCP_MEM_HIT,这表明该文件是从内存缓存读取。其他返回显示的解析如下:

TCP_HIT

Squid发现请求资源的貌似新鲜的拷贝,并将其立即发送到客户端。

TCP_MISS

Squid没有请求资源的cache拷贝。

TCP_REFERSH_HIT

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器返回304(未修改)响应,指示squid的拷贝仍旧是新鲜的。

TCP_REF_FAIL_HIT

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。然而,原始服务器响应失败,或者返回的响应Squid不能理解。在此情形下,squid发送现有cache拷贝(很可能是陈旧的)到客户端。

TCP_REFRESH_MISS

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器响应新的内容,指示这个cache拷贝确实是陈旧的。

TCP_CLIENT_REFRESH_MISS

Squid发现了请求资源的拷贝,但客户端的请求包含了Cache-Control: no-cache指令。Squid转发客户端的请求到原始服务器,强迫cache确认。

TCP_IMS_HIT

客户端发送确认请求,Squid发现更近来的、貌似新鲜的请求资源的拷贝。Squid发送更新的内容到客户端,而不联系原始服务器。

TCP_SWAPFAIL_MISS

Squid发现请求资源的有效拷贝,但从磁盘装载它失败。这时squid发送请求到原始服务器,就如同这是个cache丢失一样。

TCP_NEGATIVE_HIT

在对原始服务器的请求导致HTTP错误时,Squid也会cache这个响应。在短时间内对这些资源的重复请求,导致了否命中。 negative_ttl指令控制这些错误被cache的时间数量。请注意这些错误只在内存cache,不会写往磁盘。下列HTTP状态码可能导致否定 cache(也遵循于其他约束): 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, 504。

TCP_MEM_HIT

Squid在内存cache里发现请求资源的有效拷贝,并将其立即发送到客户端。注意这点并非精确的呈现了所有从内存服务的响应。例如,某些cache在内存里,但要求确认的响应,会以TCP_REFRESH_HIT, TCP_REFRESH_MISS等形式记录。

TCP_DENIED

因为http_access或http_reply_access规则,客户端的请求被拒绝了。注意被http_access拒绝的请求在第9域的值是NONE/-,然而被http_reply_access拒绝的请求,在相应地方有一个有效值。

TCP_OFFLINE_HIT

当offline_mode激活时,Squid对任何cache响应返回cache命中,而不用考虑它的新鲜程度。

TCP_REDIRECT

重定向程序告诉Squid产生一个HTTP重定向到新的URI(见11.1节)。正常的,Squid不会记录这些重定向。假如要这样做,必须在编译squid前,手工定义LOG_TCP_REDIRECTS预处理指令。

NONE

无分类的结果用于特定错误,例如无效主机名。

相应于ICP查询,下列标签可能出现在access.log文件的第四域。

UDP_HIT

Squid在cache里发现请求资源的貌似新鲜的拷贝。

UDP_MISS

Squid没有在cache里发现请求资源的貌似新鲜的拷贝。假如同一目标通过HTTP请求,就可能是个cache丢失。请对比UDP_MISS_NOFETCH。

UDP_MISS_NOFETCH

跟UDP_MISS类似,不同的是这里也指示了Squid不愿去处理相应的HTTP请求。假如使用了-Y命令行选项,Squid在启动并编译其内存索引时,会返回这个标签而不是UDP_MISS。

UDP_DENIED

因为icp_access规则,ICP查询被拒绝。假如超过95%的到某客户端的ICP响应是UDP_DENIED,并且客户端数据库激活了(见附录A),Squid在1小时内,停止发送任何ICP响应到该客户端。若这点发生,你也可在cache.log里见到一个警告。

UDP_INVALID

Squid接受到无效查询(例如截断的消息、无效协议版本、URI里的空格等)。Squid发送UDP_INVALID响应到客户端。2010-02-12

开源技术

squid

time

0 Comments

Squid限制工作时间浏览开心网

今天,朋友来电询问如何利用代理服务器禁止开心网。我将过程随意的告诉了他,中午不久又给我一个消息。他说工作时间禁止登陆即可,中午时候可以任意的访问开心网是否可以实现。这个其实也非常的简单,顺便在博客上也记录一下:

在squid.conf适当位置添加以下参数:

acl WH time MTWHFA 09:00-12:00 13:30-18:00

acl DenyKaixin dstdomain www.kaixin.com www.kaixin001.com

http_access deny WH DenyKaixin

其中ACL的时间参数解析:

以上的方法对于用Squid限制工作时间上QQ,MSN,网页游戏均有效,关键在于dstdomain是否准确有效。

2010-02-12

开源技术

configure

squid

0 Comments

Squid编译安装参数

以下是我目前安装squid所用的配置参数,性能方面感觉还可以:

2.7版本:

./configure –prefix=/usr/local/squid –with-maxfd=65535 –disable-internal-dns –enable-async-io –enable-epoll –enable-arp-acl –with-large-files –enable-snmp –enable-storeio=aufs,ufs –enable-default-err-language=Simplify_Chinese –enable-err-languages=”Simplify_Chinese English”

配置参数解析:

–disable-internal-dns

该选项是禁用Squid内部DNS解释,即不检查/etc/hosts,直接运用/etc/resolc.conf中列出的DNS服务器的顺序进行DNS解析,这样有个问题是不能代理内部网段的服务器访问。

–with-maxfd=65535

该选项在2.7版本中更换为–max_filedescriptors=65535

–enable-epoll

开启epoll据说可以提升I/O性能,没有实际感觉出来但也加上编译

2010-02-12

开源技术

cacti

snmp

squid

0 Comments

Cacti监控Squid运行情况

1.监控squid需要在编译安装时增加以下参数:

–enable-snmp

2.修改squid配置文件,启用snmp:

acl CactiServer src cacti_ip_address

acl SNMP snmp_community public

snmp_port 3401

snmp_access allow SNMP CactiServer

snmp_access deny all

配置完成后需要重新启动Squid程序或重新刷新配置。

3.检查是否配置成功:

yum install -y net-snmp-utils

snmpwalk -v 1 -c public 127.0.0.1:3401 .1.3.6.1.4.1.3495.1.3.2.1.4

4.下载与配置cacti模板:

wget https://forums.cacti.net/download.php?id=79

unzip SquidStats-0.1.zip

mv webcache_squid_* /var/www/cacti/resource/snmp_queries/

chmod 777 /var/www/cacti/resource/snmp_queries/webcache_squid_*

登陆到cacti管理控制台,通过import templates导入cacti_host_template_webcache_squid_server_snmp.xml文件。

5.添加设备:

在“Devices”选项中添加新主机,注意“Host Template”选择”squid sever”

就是导入进的那个.并注意填写以下内容:

SNMP Community = public

SNMP Version = 1

SNMP Port = 3401

以上,完成!

2010-02-12

开源技术

squid

version

0 Comments

Squid版本区别

Squid 2.5:比较少见到有在生产中运行,没有epoll支持,内存管理不稳定常出现宕机。

squid 2.6:性能与稳定较好,但只支持http 1.1,具备epoll支持。

squid 2.7:推荐采用2.7版本,具备2.6的稳定性,同时具备Squid 3.0版本特性。

Squid 3.0:不建议。C++语言重架构,性能与稳定性远不如2.6版本或2.7版本。不过大型网站都在用,可能反向缓存加速功能强大点吧。

2010-02-12

开源技术

squid

time

0 Comments

Squid的ERROR MESSAGE时区问题

在Squid的错误或警告页面当中,底端的时间与实际时间有8小时的差距,平时看起来让用户感觉有些奇怪。Squid的ERROR MESSAGE默认的时间显示的GMT时间,而非本地时间导致有时间差距。

解决方法

编辑Squid源文件src/errorpage.c,大概在60多行:

{

ERR_SQUID_SIGNATURE,

“\n<BR clear=\”all\”>\n”

“<HR noshade size=\”1px\”>\n”

“<ADDRESS>\n”

“Generated %T by %h (%s)\n”

“</ADDRESS>\n”

“</BODY></HTML>\n”

}

“Generated %T by %h (%s)\n” 修改为 “Generated %t by %h (%s)\n”即可!

最后更新:2017-01-04 22:34:34

  上一篇:go 网站压力测试工具webbench
  下一篇:go squid做反向代理时,要注意的安全设置