文章目录
squid缓存代理概述
squid概述
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
由于不同地理位置的客户机请求服务速度不同,使用squid缓存代理可提升响应速度,squid将服务端内容放在自己开辟的缓存空间内,客户在请求服务时,可由相应地域的squid缓存服务器提供相应内容的服务,以弥补地域上的差异。
squid工作机制
代理的工作机制
缓存网页对象,减少重复请求
工作机制示意图如下:
安装squid
//
[root@squid ~]# rz -E ##拖拽压缩包
rz waiting to receive.
[root@squid ~]# yum -y install gcc gcc-c++ make
[root@squid ~]# tar xvf squid-3.5.27.tar.gz -C /opt/
[root@squid ~]# cd /opt
[root@squid opt]# ls
haproxy-1.5.19 haproxy-1.5.19.tar.gz rh squid-3.5.27
[root@squid opt]# cd squid-3.5.27
[root@squid squid-3.5.27]# ./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-err-language="Simplify_Chinese" --enable-underscore --enable-poll --enable-gnuregex
脚本解释
--enable-linux-netfilter ##使用内核过滤
--enable-linux-tproxy ##支持透明模式
[root@localhost squid-3.5.27]# make && make install ## 安装·
[root@localhost squid-3.5.27]# ln -s /usr/local/squid/sbin/* /usr/local/sbin ## 创建链接文件,优化路径
[root@localhost squid-3.5.27]# useradd -M -s /sbin/nologin squid ###创建程序用户、组
[root@localhost squid-3.5.27]# chown -R squid:squid /usr/local/squid/var/ ##改变目录属主
修改Squid的配置文件
//
[root@squid squid-3.5.27]# vim /etc/squid.conf
编写Squid服务脚本
//
[root@squid squid-3.5.27]# vi /etc/init.d/squid
#!/bin/bash
#chkconfig: 35 90 25
#config: /etc/squid.conf
#pidfile: /usr/local/squid/var/run/squid.pid
#Description: Squid - Internet Object Cache
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"
case "$1" in
start)
netstat -utpln | grep squid &>/dev/null
if [ $? -eq 0 ]
then
echo "Squid is running"
else
$CMD
fi