環境: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 #重啟服務以測試腳本是否可用