CentOS 安装配置Squid反向代理服务器详细教程
squid是一个缓存服务,它还是一个反向代理服务,还能用于负载均衡与前端处理。squid的配置文件灵活,功能强大。它的原理是接受用户的http请求,然后根据配置文件,从源服务器得到这个请求的文件,然后返回给用户,与此同时,它将根据情况保留(缓存)一份这个文件,下次再有用户需要请求这个文件,将可以直接快速的返回给用户。
squid并没有复杂的安装配置过程,在了解原理之后其实非常简单。这里给出一个简单的squid安装与配置例子。
安装squid
对于CentOS系统,安装squid采用如下命令:
yum install squid
配置Apache
首先确保Apache正常安装,默认情况下Apache的监听端口是80端口,现在将其修改为81端口:
[root@www ~]# vi /etc/httpd/conf/httpd.conf
找到Listen 80,将其修改为
Listen 81
配置squid
squid的配置文件位于: /etc/squid/squid.conf
/etc/squid/目录下还有一个名为squid.conf.default的文件,是默认的配置。仅在squid.conf修改乱了之后用于还原配置。squid的配置文件还是比较松散的,顺序基本上没什么要求,也没有太多的层次。每行语句都比较独立。
原配置文件有几千行,绝大多数是注释,干脆手动将其删除,然后重新输入。
[root@www ~]# rm /etc/squid/squid.conf -f && vi /etc/squid/squid.conf
visible_hostname www.abc.com
http_port 80 vhost
cache_mem 256 MB
maximum_object_size_in_memory 2048 KB
cache_dir ufs /tmp 512 16 256
minimum_object_size 0 KB
maximum_object_size 32768 KB
acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_peer www.abc.com parent 81 0 no-query originserver weight=1 name=www
cache_peer_domain www www.abc.com
上面的www.abc.com只是举例子,需根据情况进行修改。上述例子是squid与Apache在同一台服务器的情况。
测试squid性能
如下命令用于显示squid使用情况:
[root@www ~]# squidclient -p 80 -h localhost mgr:info
HTTP/1.0 200 OK
Server: squid/2.6.STABLE21
Date: Fri, 13 Jan 2012 13:52:06 GMT
Content-Type: text/plain
Expires: Fri, 13 Jan 2012 13:52:06 GMT
Last-Modified: Fri, 13 Jan 2012 13:52:06 GMT
X-Cache: MISS from www.abc.com
X-Cache-Lookup: MISS from www.abc.com:80
Via: 1.0 www.abc.com:80 (squid/2.6.STABLE21)
Connection: close
Squid Object Cache: Version 2.6.STABLE21
Start Time: Fri, 13 Jan 2012 13:45:03 GMT
Current Time: Fri, 13 Jan 2012 13:52:06 GMTConnection information for squid:
Number of clients accessing cache: 2
Number of HTTP requests received: 20010
Number of ICP messages received: 0
Number of ICP messages sent: 0
Number of queued ICP replies: 0
Request failure ratio: 0.00
Average HTTP requests per minute since start: 2839.7
Average ICP messages per minute since start: 0.0
Select loop called: 2681 times, 157.699 ms avgCache information for squid:
Request Hit Ratios: 5min: 99.4%, 60min: 99.4% #这个命中率已经暴殄天物了(当然,只是用ab进行了测试)
Byte Hit Ratios: 5min: 99.4%, 60min: 99.4%
Request Memory Hit Ratios: 5min: 0.0%, 60min: 0.0%
Request Disk Hit Ratios: 5min: 0.0%, 60min: 0.0%
Storage Swap size: 8 KB
Storage Mem size: 124 KB
Mean Object Size: 4.00 KB
…
我用ab命令对80 squid端口与81 apache端口同时进行了多次测试:
[root@www ~]# ab -n 10000 -c 100 http://www.abc.com:81/
与
[root@www ~]# ab -n 10000 -c 100 http://www.abc.com/
其中采用squid后 Requests per second: 7786.69 [#/sec] (mean)
不采用squid 时 Requests per second: 4766.30 [#/sec] (mean)
看来squid的性能的确优异。Squid还支持多台后端服务器进行负载均衡与自动宕机切换,这篇文章仅仅是抛砖引玉,具体方法等有空了以后介绍。
[复制本文链接发送给您的好友]
共有2条评论 [点此发言]