环境:win10 centos7
一、下载代理服务器软件squid
官网地址:http://www.squid-cache.org/Versions/v3/3.5/
源码包:https://pan.baidu.com/s/16-kBrk7knIe5wxDr20aVtg 提取码:9z06
二、安装
(1). 使用yum安装:
(2). 编译安装:
1. 解压源码:tar -zxvf squid-3.5.0.4.tar.gz
2. 编译配置:./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-linux-netfilter --enable-async-io=240 --enable-default-err-language=Simplify_Chinese --disable-poll --enable-epoll --enable-gunregex
--prefix=/usr/local/squid :指定安装目录;
--sysconfdir=/etc :单独将配置文件修改到其他目录;
--enable-linux-netfilter:使用内核过滤;
--enable-async-io=值:异步I/O,提升存储性能;
--enable-default-err-language=Simplify_Chinese :错误信息显示语言。
--disable-poll 与--enable-epoll:关闭默认使用poll模式,开启epoll模式提提升性能;
--enable-gunregex:使用GUN正则表达式
3. 编译并安装 : make && make install
三、配置
1. 创建链接文件、创建用户和组:
[root@localhost /]# # ln -s /usr/local/squid/sbin/* /usr/local/sbin/
[root@localhost /]# useradd -M -s /sbin/nologin squid
[root@localhost /]# chown -R squid:squid /usr/local/squid/var/
2. 修改squid的配置文件:
[root@localhost /]# vim /etc/squid.conf
http_port 3128 #用来指定代理服务器监听地址和端口,默认存在该行(默认端口号是3128)
cache_effective_user squid #用来指定squid的程序用户,用来设置初始化等相关信息。 否则启动不成功,该行及下一行配置项默认不存在。
cache_effective_group squid #用来指定运行组。需手动添加该行
检查配置文件是否正确:[root@localhost /]# squid -k parse
3. squid服务控制:
[root@localhost /]# squid -z #初始化缓存目录。
[root@localhost /]# squid #启动squid服务。
为使用方便,创建一个服务脚本,并添加为系统服务。
#!/bin/bash
#chkconfig: 2345 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 -anpt | grep squid &> /dev/null
if [ $? -eq 0 ]
then
echo "squid is running"
else
echo "正在启动squid..."
$CMD
fi
;;
stop)
$CMD -k kill &> /dev/null
rm -rf $PID &> /dev/null
;;
status)
[ -f $PID ] &> /dev/null
if [ $? -eq 0 ]
then
netstat -anpt | grep squid
else
echo "squid is not running."
fi
;;
restart)
$0 stop &> /dev/null
echo "正在关闭squid..."
$0 start &> /dev/null
echo "正在启动squid..."
;;
reload)
$CMD -k reconfigure
;;
check)
$CMD -k parse
;;
*)
echo "用法:$0 {start | stop | restart | reload | check | status}"
;;
esac
[root@localhost /]# chmod +x /etc/init.d/squid #赋予脚本执行权限
[root@localhost /]# chkconfig --add squid #添加为系统服务
[root@localhost /]# systemctl restart squid #重启服务以测试脚本是否可用