squid3.4编译安装
squid反向代理工作原理:
squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好用途。作者在具体实验环境下,利用 DNS 轮询和 Squid 反向代理技术,实现了网站的负载均衡,从而提高了网站可用性和可靠性。 现在有许多大型的门户网站如 SINA 都采用 squid 反向代理技术来加速网站的访问速度,可将不同的 URL 请求分发到后台不同的 WEB 服务器上,同时互联网用户只能看到反向代理服务器的地址,加强了网站的访问安全。squid安装:
系统为centos5.8
安装依赖包:yum install -y gcc gcc-c++ make perl perl-devel
解压文件:tar zxvf squid-3.4.2-20140112-r13074.tar
安装: ./configure --prefix=/usr/local/squid
make && make install
建立squid用户和组:groupadd squid #建立用户 useradd -g squid -s /sbin/nologin squid #建立组并把用户添加到组 但不能登陆系统添加squid用户和组到指定文件夹权限:
chown -R squid /usr/local/squid/var/logs/ /usr/local/squid/var/cache/ #squid需要用户有权访问var/logs和var/cache两个文件夹配置squid.conf:
cache_effective_user squid #使用squid用户启动squid cache_effective_group squid #使用squid组启动squid 注:如使用root启动squid为--cache_effective_user nobody 不能添加squid组、用户和文件夹权限 cache_effective_group nobody设定 squid 的主机名: visible_hostname 本机IP地址 #如无此项 squid 将无法启动 设定squid监听端口: http_port 80 accel vhost vport #这是客户访问网站的端口,最好设置为80,否则客户访问需要添加端口号; #vport指的是基于IP地址和基于端口的 #vhost指的是所采用的虚拟主机的方式,必须要加.否则将无法将主机头转发 至后端服务器,访问时就会出现无法找到主机头的错误 #accel为加速模式定义不同的父节点: cache_peer 种子机的ip地址 parent 80 0 no-query originserver name=种子机的名称 #no-query originserver 参数指明是源服务器 #parent表示源服务器端口 #如需要轮询服务器同步数据,可添加round-robin指定缓存文件路径:
cache_dir ufs /data/cache 33216 32 256 cache_dir ufs /data/cache1 33216 32 256设置acl规则:
acl all src 0.0.0.0/0.0.0.0 http_access allow all # 允许所有用户访问设置日志文件: logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh access_log /usr/local/squid3.4/var/logs/access.log pid_filename /usr/local/squid3.4/var/logs/squid.pid cache_log /usr/local/squid3.4/var/logs/cache.log对 squid 的一些优化: maximum_object_size 10240 KB ### 能缓存的最大对象为 10M maximum_object_size_in_memory 512 KB ### 内存中缓存的最大对象 512K cache_mem 256 MB ###squid 用于缓存的内存量,最后进行保存 quick_abort_min -1 KB refresh_pattern -i \.jpg$ 3 20% 25 reload-into-ims refresh_pattern -i \.xml$ 3 20% 15 reload-into-ims request_timeout 30 seconds logfile_rotate 7# Leave coredumps in the first cache dir
coredump_dir /usr/local/squid/var/cache/squid# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320检查squid配置文件是否正确:/usr/local/squid/sbin/squid –k parse
生成缓存目录:/usr/local/squid/sbin/squid –N -z -d 1启动squid:/usr/local/squid/sbin/squid停止squid:/usr/local/squid/sbin/squid -k shutdown 参考文件: /usr/local/squid/etc squid.conf.documented #配置信息-------------------------------------------------------------------------------------------------------------------常用的squidclient查询语句如下(/usr/local/squid/bin): #这里-p后面的是端口,根据自己具体的情况而定。如果是3128端口,就把上面的80换成3128就可以了 squidclient -p 80 mgr:info #取得squid运行状态信息:squidclient -p 80 mgr:mem #取得squid内存使用情况:
squidclient -p 80 mgr:objects #取得squid已经缓存的列表,使用时要小心,可能会造成squid崩溃:
squidclient -p 80 mgr:diskd #取得squid的磁盘使用情况:
squidclient -p 80-m PURGE http://www.gznet.com #强制更新某个url,即清理某连接的squid
-------------------------------------------------------------------------------------------------------------------- 参考文章:http://fuquanjun.blog.51cto.com/5820068/1339465 http://www.doc88.com/p-681406154785.html http://www.52-life.net/N_Windows_squid.htm如发现问题,请留言指正,感谢阅读!!