CentOS 6.5上安装squid 3.0

一、准备工作

[[email protected] ~]# 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

[[email protected] ~]# getenforce

Disabled

[[email protected] ~]# hostname

squid.contoso.com

[[email protected] ~]# crontab -l

0 * * * * /usr/sbin/ntpdate   210.72.145.44 64.147.116.229 time.nist.gov

[[email protected] ~]# 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

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/

[[email protected] 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)。

[[email protected] etc]# diff squid.conf.default squid.conf   #默认情况下就有一个squid.conf的备份

[[email protected] etc]# vi squid.conf

[[email protected] 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 [email protected]    #设置cache管理员邮箱

2941c2941

< # cache_effective_user nobody

---

> cache_effective_user squid     #设置squid用户

2961a2962

> cache_effective_group squid    #设置squid组

2977a2979

> visible_hostname  cache1.contoso.com  #设置可见的主机名,如果不设置会报错

[[email protected] etc]# chown -R squid:squid /usr/local/squid/var/logs

[[email protected] 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

# 上面的结果说明配置文件正确

[[email protected] etc]# chown -R squid:squid /usr/local/squid/var/

[[email protected] 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

下面看一下初始化的结果:

[[email protected] 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

[[email protected] ~]# 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

[[email protected] ~]# 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:

[[email protected] 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

查看一下监听端口:

[[email protected] ~]# 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

[[email protected] ~]# lsof -i :3128

COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

squid   21815 squid   15u  IPv4  36097      0t0  TCP *:squid (LISTEN)

四、简单的测试

由于上面的配置只是简单的一个正向代理的配置,所以这里使用IE浏览器进行代理连接测试。

首先,打开IE浏览器的浏览器选项,在连接选项卡中点击局域网设置。

在代理服务器中输入squid服务器的IP和端口,确定,然后打开百度进行刷新。

为了确定是否是从squid代理进行浏览网页,我清空了squid的access.log,然后再进行跟踪,下面是详细的日志信息:

[[email protected] ~]# > /usr/local/squid/var/logs/access.log

[[email protected] ~]# 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

时间: 2024-11-11 12:06:32

CentOS 6.5上安装squid 3.0的相关文章

CentOS 6.5上安装GlassFish4.0 过程笔记

CentOS 6.5上安装GlassFish4.0 过程笔记 1.安装JDK, 注意操作系统的位数, 64 or 32: [[email protected] ~]# mkdir /usr/java  [[email protected] ~]# cd /usr/java[[email protected] java]#rpm -Uvh /bak/jdk-7u55-linux-x64.rpm  [[email protected] java]# JAVA_HOME=/usr/java/jdk1.

在CentOS 6.4上安装Puppet配置管理工具

在CentOS 6.4上安装Puppet配置管理工具 linux, puppetAdd comments 五052013 上篇说了下在ubuntu12.04上安装puppet,安装的版本为puppet2.7.11版本,今天尝试了下在CentOS6.4系统上安装puppet 3.1.1版本,本文参考chenshake的文章 ? 1 2 3 4 OS:centso 6.4 X64 Puppet 3.1.1 Puppet master: master.canghai.com Puppet client

在CentOS .65 64位安装OpenMeetings .3.0.1

OpenMeetings是一个多语言可定制的视频会议和协作系统.它支持音频.视频,能让你查看每个与会者的桌面.OpenMeetings还包含一个白板,通过白板可以导入各种格式的图片和涂鸦. 其特色功能是白板功能,可以演示doc,ppt,pdf,jpg,txt等众多格式文件. 下面我们进入安装过程. 注意: OpenMeetings需要OpenOffice或者LibreOffice的支持 所以安装系统的时候把桌面何JDK安装上 这里我安装系统的时候已经将开发包,桌面,办公套件(office),My

CentOS 6.9上安装mysql-5.6.37

CentOS 6.9上安装mysql-5.6.37 1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/data,而后需要创建/data/mysqldata目录做为mysql数据的存放目录. [[email protected] /]# mkdir -p /data/mysqldata 2.新建用户以安全方式运行进程: [[email protected] ~]# useradd mysql -s /sbin/nologin -

CentOS 5.3上安装Apache+php+Mysql+phpMyAdmin

1.系统下载CentOS 开发社区已发布了新的 5.3 版本.CentOS 5.3 基于 Red Hat Enterpris Linux 5.3.0,其中包括 Kernel 2.6.18.Apache 2.2.PHP 5.1.6.MySQL 5.0.PostgreSQL 8.GNOME 2.16.KDE 3.5.OpenOffice.org 2.3.Firefox 3.0.Evolution 2.12 等等.此外,CentOS 5.3 更新了美工设计,并根据用户的请求恢复了 Contrib 仓库

64位CentOS 6.2下安装Zabbix 2.0.6

64位CentOS6.2下安装Zabbix 2.0.6 1.安装组件 yum install make mysql-server httpd php mysql-devel gcc net-snmp-devel curl-devel p3rl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml -y useradd zabbix 2.启动mysql service mysqld start mysqladmin –u root passwor

在CentOS 6.5上安装和配Xen

http://luochen2015.blog.51cto.com/9772274/1741540 自从 RedHat 在 RHEL 6 放弃 Xen 后,下载 Xen 源码编译安装似乎是在 RHEL/CentOS 6.x 上安装 Xen 的唯一办法.不过,开源世界永远不缺少热情的志愿者,Xen Made Easy 这个项目为我们提供了可用的 Xen 第三方软件源,免去了自己编译源码的痛苦.现在,我们有了更好的官方选择,就是 Xen4CentOS6. Xen4CentOS6 是来自 CentOS

记录CentOS 7.4 上安装MySQL&amp;MariaDB&amp;Redis&amp;Mongodb

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb 前段时间我个人Google服务器意外不能用,并且我犯了一件很低级的错误,直接在gcp讲服务器实例给释放掉,导致我的数据全部丢失,现在新搞一个服务器,顺便记录一下CentOS 7.4 MySQL&MariaDB&Redis&Mongodb 的安装 1祝大家:诸事顺利,2019 发大财! 本人将一如既往,更新我的博客,努力为博客园贡献文章! Mysql 安装 随着CentOS

在Linux CentOS 6.6上安装Python 2.7.9

在Linux CentOS 6.6上安装Python 2.7.9 CentOS 6.6自带的是Python 2.6.6,而编译llvm需要Python 2.7以上. checking for python... /usr/bin/python checking for python >= 2.7... not found configure: error: found python 2.6.6 (/usr/bin/python); required >= 2.7 yum中最新的也是Python