设为首页 收藏本站
查看: 2253|回复: 0

[经验分享] CentOS 6.5上安装squid 3.0

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-17 11:04:55 | 显示全部楼层 |阅读模式
一、准备工作
[iyunv@squid ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[iyunv@squid ~]# getenforce
Disabled
[iyunv@squid ~]# hostname
squid.contoso.com
[iyunv@squid ~]# crontab -l
0 * * * * /usr/sbin/ntpdate   210.72.145.44 64.147.116.229 time.nist.gov
[iyunv@squid ~]# yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb krb5-devel libidn libidn-devel openssl openssl-devel make gcc-c++ cmake bison-devel ncurses-devel
二、编译安装squid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
mkdir -p /opt/tools
cd /opt/tools/
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE20.tar .gz
tar -zxf squid-3.0.STABLE20.tar.gz
cd squid-3.0.STABLE20

./configure  --prefix=/usr/local/squid \
--enable-async-io=100 \
--with-pthreads \
--enable-storeio="aufs,diskd,ufs" \
--enable-removal-policies="heap,lru" \
--enable-icmp \
--enable-delay-pools \
--enable-useragent-log \
--enable-referer-log \
--enable-kill-parent-hack \
--enable-cachemgr-hostname=localhost \
--enable-arp-acl \
--enable-default-err-language=English \
--enable-err-languages="Simplify_Chinese English" \
--disable-poll \
--disable-wccp \
--disable-wccpv2 \
--disable-ident-lookups \
--disable-internal-dns \
--enable-basic-auth-helpers="NCSA" \
--enable-stacktrace \
--with-large-files \
--disable-mempools \
--with-filedescriptors=64000 \
--enable-ssl \
--enable-x-accelerator-vary \
--disable-snmp \
--with-aio \
--enable-linux-netfilter \
--enable-linux-tproxy

make
make install



三、配置squid
useradd -s /sbin/nologin -M squid   #创建squid用户
cd /usr/local/squid/etc/
[iyunv@squid etc]# tree -d -L 2 /usr/local/squid  #安装完squid之后默认创建的目录
/usr/local/squid
├── bin
├── etc
├── libexec
├── sbin
├── share
│   ├── errors
│   ├── icons
│   └── man
└── var
    └── logs

10 directories
squid安装后的目录说明:
          sbin/squid: squid的主程序
          bin: bin目录包含对所有用户可用的程序
          bin/RunCache: RunCache是一个shell脚本,可以用它来启动squid。假如squid死掉,该脚本自动重启它,除非它检测到经常的重启。
          bin/RunAccel: RunAccel与RunCache几乎一致,唯一的不同是它增加了一个命令行参数,告诉squid在哪里侦听HTTP请求。
          bin/squidclient: squidclient是个简单的HTTP客户端程序,可以用它来测试squid。它也有一些特殊功能,用来对运行的squid进程发起管理请求。
          libexec:libexec目录包含了辅助程序,有一些命令无法正常的启动。然而,这些程序通常被其他程序启动。
          libexec/unlinkd:unlinkd是一个辅助程序,它从cache目录里删除文件。
          libexec/cachemgr.cgi:cachemgr.cgi是squid管理功能的CGI接口。要使用它需要把它拷贝到你的WEB服务器的cgi-bin目录。
          libexec/diskd(optional):如果指定了--enable-storeio=diskd,才能看到它
          libexec/pinger(optional):如果指定了--enable-icmp,才能看到它
          etc:etc目录包含了squid的配置文件
          etc/squid.conf:这是squid的主配置文件
          var: var目录包含了不是很重要的和经常变化的文件,这些文件不必正常的备份它们。
          var/logs:该目录是squid不同日志文件的默认位置,当你第一次安装squid时,它是空的。一旦squid开始运行,你能在这里看到名字为access.log,cache.log和store.log这样的文件。
          var/cache:假如你不在squid.conf文件里指定,这是默认的缓存目录(cache_dir)。
[iyunv@squid etc]# diff squid.conf.default squid.conf   #默认情况下就有一个squid.conf的备份
[iyunv@squid etc]# vi squid.conf
[iyunv@squid etc]# diff squid.conf.default squid.conf
1710c1710
< # cache_dir ufs /usr/local/squid/var/cache 100 16 256
---
> cache_dir ufs /usr/local/squid/var/cache 100 16 256  #取消cache_dir的注释
1889c1889
< # cache_log /usr/local/squid/var/logs/cache.log
---
> cache_log /usr/local/squid/var/logs/cache.log   #启用cache_log
1899c1899
< # cache_store_log /usr/local/squid/var/logs/store.log
---
> cache_store_log /usr/local/squid/var/logs/store.log   #启用cache_store_log
2912c2912
< # cache_mgr webmaster
---
> cache_mgr admin@contoso.com    #设置cache管理员邮箱
2941c2941
< # cache_effective_user nobody
---
> cache_effective_user squid     #设置squid用户
2961a2962
> cache_effective_group squid    #设置squid组
2977a2979
> visible_hostname  cache1.contoso.com  #设置可见的主机名,如果不设置会报错
[iyunv@squid etc]# chown -R squid:squid /usr/local/squid/var/logs
[iyunv@squid etc]# /usr/local/squid/sbin/squid -k parse  #测试squid的配置文件语法是否正确
2016/10/15 09:09:01| Processing Configuration File: /usr/local/squid/etc/squid.conf (depth 0)
2016/10/15 09:09:01| Initializing https proxy context
# 上面的结果说明配置文件正确
[iyunv@squid etc]# chown -R squid:squid /usr/local/squid/var/
[iyunv@squid etc]# /usr/local/squid/sbin/squid -z   #对cache目录进行初始化
2016/10/15 09:13:14| Creating Swap Directories
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/00
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/01
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/02
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/03
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/04
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/05
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/06
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/07
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/08
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/09
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/0A
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/0B
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/0C
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/0D
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/0E
2016/10/15 09:13:14| Making directories in /usr/local/squid/var/cache/0F
下面看一下初始化的结果:
[iyunv@squid etc]# ll /usr/local/squid/var/cache/
total 64
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 00
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 01
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 02
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 03
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 04
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 05
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 06
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 07
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 08
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 09
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 0A
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 0B
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 0C
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 0D
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 0E
drwxr-x--- 258 squid squid 4096 Oct 15 09:13 0F
[iyunv@squid ~]# ls /usr/local/squid/var/cache/00/
00  0C  18  24  30  3C  48  54  60  6C  78  84  90  9C  A8  B4  C0  CC  D8  E4  F0  FC
01  0D  19  25  31  3D  49  55  61  6D  79  85  91  9D  A9  B5  C1  CD  D9  E5  F1  FD
02  0E  1A  26  32  3E  4A  56  62  6E  7A  86  92  9E  AA  B6  C2  CE  DA  E6  F2  FE
03  0F  1B  27  33  3F  4B  57  63  6F  7B  87  93  9F  AB  B7  C3  CF  DB  E7  F3  FF
04  10  1C  28  34  40  4C  58  64  70  7C  88  94  A0  AC  B8  C4  D0  DC  E8  F4
05  11  1D  29  35  41  4D  59  65  71  7D  89  95  A1  AD  B9  C5  D1  DD  E9  F5
06  12  1E  2A  36  42  4E  5A  66  72  7E  8A  96  A2  AE  BA  C6  D2  DE  EA  F6
07  13  1F  2B  37  43  4F  5B  67  73  7F  8B  97  A3  AF  BB  C7  D3  DF  EB  F7
08  14  20  2C  38  44  50  5C  68  74  80  8C  98  A4  B0  BC  C8  D4  E0  EC  F8
09  15  21  2D  39  45  51  5D  69  75  81  8D  99  A5  B1  BD  C9  D5  E1  ED  F9
0A  16  22  2E  3A  46  52  5E  6A  76  82  8E  9A  A6  B2  BE  CA  D6  E2  EE  FA
0B  17  23  2F  3B  47  53  5F  6B  77  83  8F  9B  A7  B3  BF  CB  D7  E3  EF  FB
[iyunv@squid ~]# ls /usr/local/squid/var/cache/00/ |wc -l
256
也就是根据在squid.conf文件配置的cache_dir ufs /usr/local/squid/var/cache 100 16 256,一共在cache_dir中生成16个目录,每个目录下又生成256个目录。
下面启动squid:
[iyunv@squid etc]# /usr/local/squid/sbin/squid -N -d1  #启动squid(前台启动)
2016/10/15 09:15:14| Starting Squid Cache version 3.0.STABLE20 for x86_64-unknown-linux-gnu...
2016/10/15 09:15:14| Process ID 21815
2016/10/15 09:15:14| With 64000 file descriptors available
2016/10/15 09:15:14| Performing DNS Tests...
2016/10/15 09:15:14| Successful DNS name lookup tests...
2016/10/15 09:15:14| helperOpenServers: Starting 5/5 'dnsserver' processes
2016/10/15 09:15:14| User-Agent logging is disabled.
2016/10/15 09:15:14| Referer logging is disabled.
2016/10/15 09:15:14| Unlinkd pipe opened on FD 14
2016/10/15 09:15:14| Swap maxSize 102400 + 8192 KB, estimated 8507 objects
2016/10/15 09:15:14| Target number of buckets: 425
2016/10/15 09:15:14| Using 8192 Store buckets
2016/10/15 09:15:14| Max Mem  size: 8192 KB
2016/10/15 09:15:14| Max Swap size: 102400 KB
2016/10/15 09:15:14| Rebuilding storage in /usr/local/squid/var/cache (DIRTY)
2016/10/15 09:15:14| Using Least Load store dir selection
2016/10/15 09:15:14| Set Current Directory to /usr/local/squid/var/cache
2016/10/15 09:15:14| Loaded Icons.
2016/10/15 09:15:14| Accepting  HTTP connections at 0.0.0.0, port 3128, FD 15.
2016/10/15 09:15:14| Accepting ICP messages at 0.0.0.0, port 3130, FD 16.
2016/10/15 09:15:14| HTCP Disabled.
2016/10/15 09:15:14| Pinger socket opened on FD 18
2016/10/15 09:15:14| Ready to serve requests.
2016/10/15 09:15:15| Done scanning /usr/local/squid/var/cache swaplog (0 entries)
2016/10/15 09:15:15| Finished rebuilding storage from disk.
2016/10/15 09:15:15|         0 Entries scanned
2016/10/15 09:15:15|         0 Invalid entries.
2016/10/15 09:15:15|         0 With invalid flags.
2016/10/15 09:15:15|         0 Objects loaded.
2016/10/15 09:15:15|         0 Objects expired.
2016/10/15 09:15:15|         0 Objects cancelled.
2016/10/15 09:15:15|         0 Duplicate URLs purged.
2016/10/15 09:15:15|         0 Swapfile clashes avoided.
2016/10/15 09:15:15|   Took 0.99 seconds (  0.00 objects/sec).
2016/10/15 09:15:15| Beginning Validation Procedure
2016/10/15 09:15:15|   Completed Validation Procedure
2016/10/15 09:15:15|   Validated 25 Entries
2016/10/15 09:15:15|   store_swap_size = 0
2016/10/15 09:15:15| storeLateRelease: released 0 objects
2016/10/15 09:55:14| NETDB state saved; 0 entries, 0 msec
2016/10/15 10:36:54| NETDB state saved; 0 entries, 0 msec
查看一下监听端口:

[iyunv@squid ~]# netstat -tunlp|grep squid
tcp        0      0 0.0.0.0:3128                0.0.0.0:*                   LISTEN      21815/squid         
udp        0      0 0.0.0.0:3130                0.0.0.0:*                               21815/squid         
[iyunv@squid ~]# lsof -i :3128
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
squid   21815 squid   15u  IPv4  36097      0t0  TCP *:squid (LISTEN)
四、简单的测试
由于上面的配置只是简单的一个正向代理的配置,所以这里使用IE浏览器进行代理连接测试。
QQ截图20161017110439.png
首先,打开IE浏览器的浏览器选项,在连接选项卡中点击局域网设置。
QQ截图20161017110443.png
在代理服务器中输入squid服务器的IP和端口,确定,然后打开百度进行刷新。

为了确定是否是从squid代理进行浏览网页,我清空了squid的access.log,然后再进行跟踪,下面是详细的日志信息:
[iyunv@squid ~]# > /usr/local/squid/var/logs/access.log
[iyunv@squid ~]# tail -f /usr/local/squid/var/logs/access.log
1476545163.478    214 192.168.49.1 TCP_MISS/200 48583 CONNECT www.baidu.com:443 - DIRECT/14.215.177.38 -
1476545163.545     69 192.168.49.1 TCP_MISS/200 12924 CONNECT ss0.baidu.com:443 - DIRECT/119.146.74.33 -
1476545163.547     74 192.168.49.1 TCP_MISS/200 12252 CONNECT ss2.baidu.com:443 - DIRECT/119.146.74.33 -
1476545163.613    131 192.168.49.1 TCP_MISS/200 618 CONNECT ss0.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545163.635    161 192.168.49.1 TCP_MISS/200 1151 CONNECT ss0.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545163.636    163 192.168.49.1 TCP_MISS/200 1135 CONNECT ss0.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545163.751    277 192.168.49.1 TCP_MISS/200 1103 CONNECT ss0.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545164.094    622 192.168.49.1 TCP_MISS/200 1087 CONNECT ss0.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545164.094    618 192.168.49.1 TCP_MISS/200 1055 CONNECT ss0.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545164.094    622 192.168.49.1 TCP_MISS/200 1524 CONNECT ss0.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545164.095    480 192.168.49.1 TCP_MISS/200 1684 CONNECT ss1.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545164.095    460 192.168.49.1 TCP_MISS/200 3139 CONNECT ss1.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545164.444    107 192.168.49.1 TCP_MISS/200 634 CONNECT sp3.baidu.com:443 - DIRECT/14.215.177.37 -
1476545223.537  60061 192.168.49.1 TCP_MISS/200 15152 CONNECT ss1.baidu.com:443 - DIRECT/119.146.74.33 -
1476545223.549  60076 192.168.49.1 TCP_MISS/200 1156 CONNECT ss0.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545223.555  60079 192.168.49.1 TCP_MISS/200 9479 CONNECT ss1.baidu.com:443 - DIRECT/119.146.74.33 -
1476545223.738  60100 192.168.49.1 TCP_MISS/200 2238 CONNECT ss1.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545224.154  60606 192.168.49.1 TCP_MISS/200 1625 CONNECT ss0.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545224.154  60606 192.168.49.1 TCP_MISS/200 1657 CONNECT ss0.bdstatic.com:443 - DIRECT/119.146.74.32 -
1476545224.376  60236 192.168.49.1 TCP_MISS/200 25575 CONNECT www.baidu.com:443 - DIRECT/14.215.177.37 -
1476545224.437  60109 192.168.49.1 TCP_MISS/200 953 CONNECT www.baidu.com:443 - DIRECT/14.215.177.38 -
1476545258.936  95184 192.168.49.1 TCP_MISS/200 3736 CONNECT sp0.baidu.com:443 - DIRECT/14.215.177.38 -
1476545258.994  78103 192.168.49.1 TCP_MISS/200 1742 CONNECT sp1.baidu.com:443 - DIRECT/14.215.177.37 -
五、其他
把squid命令路径添加到系统环境变量:

echo 'PATH=/usr/local/squid/sbin:/usr/local/squid/bin:$PATH' >> /etc/profile
source /etc/profile
让squid在后台运行:
/usr/local/squid/sbin/squid -D
将squid添加到开机启动:
echo '/usr/local/squid/sbin/squid -D' >>/etc/rc.local
squid启动脚本:

#!/bin/bash
# chkconfig: 345 88 14
# description: squid Daemon

case "$1" in
     start)
                 /usr/local/squid/sbin/squid -D
                 ;;
         stop)   /usr/local/squid/sbin/squid -k shutdown
                 ;;
         restart)
                 /usr/local/squid/sbin/squid -k reconfigure
                         ;;
         parse)
                 /usr/local/squid/sbin/squid -k parse
                         ;;
         check)
                 /usr/local/squid/sbin/squid -k check
                         ;;
         *)
                 echo "Usage: $0 start|stop|restart|check|parse"
             ;;
esac
配置squid日志轮询:
/usr/local/squid/sbin/squid -k rotate
配置squid日志切割:
1)添加定时任务:
0 0 * * *  /bin/sh   /opt/tools/rotate_squid.sh >/dev/null 2>&1
2)rotate_squid.sh脚本的内容如下:
cd /usr/local/squid/var/logs
[ -f access.log ] && mv access.log access_$(date +%F).log
/usr/local/squid/sbin/squid -k rotate


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-287438-1-1.html 上篇帖子: linux下配置squid(详细配置) 下篇帖子: Squid概述及相关配置说明
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表