Linux基本知识点总结——Squid
代理服务是一种特殊的服务,允许客户端通过它与另一个网络服务进行非直接的连接,也称网络代理。提供代理服务的计算机或其他类型的网络节点称为代理服务器,代理服务器中实现网络代理的软件称为代理软件。Linux中用到的代理软件是squid。
本实验平台为CentOS 6.2,环境为:
Squid服务器暨Apache服务器
主机名:itpro IP地址:192.168.56.53
客户端测试机
主机名:station IP地址:192.168.56.123
准备工作:
Httpd方面,
[root@itpro ~]# yum install httpd
[root@itpro ~]# chkconfig httpd on
[root@itpro ~]# service httpd start
同时,在/var/www/html/下创建一个index.html文件,内容随意,用于测试网页访问。
Squid方面,
[root@itpro ~]# yum install squid
[root@itpro ~]# chkconfig squid on
[root@itpro ~]# service squid start
[root@itpro ~]# ls /var/spool/squid/
(注:此时的缓存目录为空目录)
一、缓存设置
Squid主配文件/etc/squid/squid.conf中,有一行是用于指定缓存目录设置的,如下
cache_dir ufs /var/spool/squid 100 16 256
默认情况下被注释掉了,要将其前面的“#”删除,才能生效。
其中ufs表示缓存数据的存储格式;
/var/spool/squid 指缓存目录;
100 : 缓存目录占磁盘空间大小(M);
16 :缓存空间一级子目录个数;
256 :缓存空间二级子目录个数。
修改配置文件,将cache_dir ufs /var/spool/squid 100 16 256前面的#去掉,再重启服务,可以看到/var/spool/squid/下多了16个目录,每个目录里又有256个子目录。
[root@itpro ~]# service squid restart
init_cache_dir /var/spool/squid... Starting squid: ...... [ OK ]
[root@itpro ~]# ls /var/spool/squid/
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F swap.state
在客户端station,打开firefox浏览器,将其代理服务设置为192.168.53.56:3128,
然后访问http://192.168.53.56,能看到先前在服务器上创建的index.html的内容,
表明客户机station通过squid服务器itpro成功访问httpd服务器(也是itpro)。
刷新页面两次。
在服务器上查看squid访问日志,内容如下:
[root@itpro ~]# tail /var/log/squid/access.log
1368574347.237 23 192.168.56.123 TCP_MEM_HIT/200 427 GET http://192.168.56.53/ - NONE/- text/html
1368574350.174 23 192.168.56.123 TCP_IMS_HIT/304 291 GET http://192.168.56.53/ - NONE/- text/html
1368574354.157 23 192.168.56.123 TCP_IMS_HIT/304 291 GET http://192.168.56.53/ - NONE/- text/html
其中第一条记录的状态码为200,表示这是squid服务器第一次访问http服务器,由http服务器提供请求的页面。
第二、三条记录的状态码为304,表示网页内容未修改过,http服务器只返回响应,不返回页面内容,亦即客户端浏览器上看到的是squid里的缓存。