Squid – 安装、配置、使用

目标操作系统:Win7下,VM VirtualBox虚拟机安装的Ubuntu Server12.04

无法实现Win7主机与Ubuntu Server(版本12.04)虚拟机之间的文件共享,USB驱动也有问题,所以退而求其次,使用Ubuntu桌面版,版本10.04。

推荐阅读:

配置Squid代理http和rsync  http://www.linuxidc.com/Linux/2013-05/84642.htm

Squid:实现高速的Web访问 http://www.linuxidc.com/Linux/2013-04/83512.htm

CentOS 6.2 编译安装Squid 配置反向代理服务器 http://www.linuxidc.com/Linux/2012-11/74529.htm

Squid在企业网中的应用 http://www.linuxidc.com/Linux/2012-10/71818.htm

编译Squid

准备工作:

下载Squid,版本:3.2.1

建立专用账户:创建名为squid的用户和组,用户目录设为/usr/local/squid。

~$sudo useradd –d /usr/local/squid –m –G vboxsf -U squid

~$ passwd squid  (设置新用户的口令)

-G是将新用户加入vboxsf组,以便获取读取共享文件夹(/media/sf_S~)的权限。

按照文档‘Compiling Squid’的提示首先解决包依赖关系:

~$sudo apt-get build-dep squid3  #解决编译源码 package 的依赖关系

此间如果出错(获取一些包失败),可能是有些日子没有用虚拟机了,执行如下命令:

~$sudo apt-get update    #更新软件包下载源

然后再执行‘~$sudo apt-get build-dep squid3’,注意不要安装squid3的二进制代码包。

su为用户squid并从共享文件夹拷贝squid的源文件到目录 /usr/local/squid/src中,用如下命令进行解压: 

~$tar xzf squid-3.0.STABLE26.tar.gz

~$cd /usr/local/squid/src/squid-3.0.STABLE26/

~$./configure [options]  #选项参见下面的说明

~$make                    #一次性通过!

~$make install            #涉及到权限问题,将squid用户加入sudo组,然后执行:

~$sudo make install      #OK!

由于此处执行命令时切换到了root账户,所以后面运行时会碰到许多的权限设置问题。

配置Squid
根据Squid网站文档,安装完毕后的目录结构如下: 


实际上不是,真实情况是(squid版本3.0):

配置文件目录:/etc/squid/

图标文件目录:/share/squid/icons/

可执行文件目录:/usr/sbin/

可执行文件目录-2:/usr/bin/

库文件目录:/lib/squid/

日志目录:/var/logs/ 

Setting Squid's HTTP Port
保持默认值不变,3128。 

http_port 3128

Where to Store Cached Data
默认系统缓存目录为 /usr/local/squid/cache,我在安装squid 3.0后实际缓存目录位于 /var/cache 

cache_dir /var/cache 100 16 256 

配置文件中目录确实为‘/var/cache’,没有作更改,保持默认值,默认值的含义可以随便在网上搜索可知。

Logging
默认不变: 

access_log /var/logs/access.log squid

Effective User and Group ID
运行时的用户和组ID,启动时一般都是root,为安全起见,运行时改变之,我均设置为squid。 

cache_effective_user squid

cache_effective_group squid

Access Control Lists and Access Control Operators
允许局域网(192.168.1.*)内的所有主机访问(注意:这里的地址与你网络的配置密切相关): 

acl localnet src 192.168.1.0/255.255.255.0 

http_access allow  localnet

icp_access  allow  localnet

其它配置参数
保持默认值不变。 

运行Squid
运行如下命令启动squid: 

~$/usr/sbin/squid –N –d 1



关于参数可以‘--help’查看。这一过程中依次出现问题。

问题一:

FATAL: Could not determine fully qualified hostname

Page faults with physical i/o: 20
 

解决办法:

编辑配置文件squid.conf,找到参数‘visible_hostname’,增加一行:

 

visible_hostname your_host_name

 

主机名称可以通过执行命令‘~$uname -n’获得。

再次执行‘~$/usr/sbin/squid –N –d 1’。

问题二:

FATAL: Failed to make swap directory /var/cache/00: (13) Permission denied
 

解决办法:

权限问题,squid要在/var/cache/目录下创建文件目录,我编译安装squid时的账户是root,在配置中设置运行时用户为squid,所以通过以下指令修改:

 

~$sudo chown –R /var/cache/

 

再次执行‘~$/usr/sbin/squid –N –d 1’。

问题三:

WARNING: Cannot write log file: /var/logs/cache.log

/var/logs/cache.log: Permission denied
 

解决办法:

同样是权限问题,参照问题二执行:

 

~$sudo chown –R /var/logs/

 

再次执行‘~$/usr/sbin/squid –N –d 1’。

问题四:

2012/08/17 15:10:47| /var/cache/00: (2) No such file or directory

FATAL:    Failed to verify one of the swap directories, Check cache.log

        for details.  Run 'squid -z' to create swap directories

        if needed, or if running Squid for the first time.
 

解决办法:

根据提示执行:

再次执行‘~$/usr/sbin/squid –z –N –d 1’,注意增加了一个选项‘-z’。

 

OK!查看日志文件‘/var/logs/cache.log’,看到如下输出即可:

 

……

2012/08/17 15:49:30| Accepting  HTTP connections at 0.0.0.0, port 3128, FD 11.

2012/08/17 15:49:30| Accepting ICP messages at 0.0.0.0, port 3130, FD 12.

2012/08/17 15:49:30| HTCP Disabled.

2012/08/17 15:49:30| Ready to serve requests.

2012/08/17 15:49:31| Done scanning /var/cache swaplog (0 entries)

……
 

 

小结:主要都是权限设置的问题,这与执行安装时的用户有关。在‘Effective User and Group ID’步骤中设定好运行时用户和组ID后,需要检查配置文件与日志文件路径,执行以下命令:

 

~$sudo chmod squid:squid -R /etc/squid

~$sudo chmod squid:squid -R /var/logs

 

测试Squid
根据Squid官网提供的文档应当使用‘client’命令测试,可经搜索后发现3.0版本的没有此命令。经查询和系统搜索发现更改为‘squidclient’,另外还有‘RunCache’和‘RunAccel’命令,均在目录‘/usr/bin/’下(注意不是squid命令所在的‘/usr/sbin/’目录。

另外在安装Squid的源代码目录‘src’下有目录‘tools’,该目录下也有客户端测试命令‘squidclient’,另外还有一个执行脚本‘cachemgr.cgi’。

首先在代理服务器上打开浏览器看看是否能够正常浏览网页。

执行如下命令:

 

~$/ usr/bin/squidclient mgr:info

 

屏幕输出如下:

HTTP/1.0 200 OK

Server: squid/3.0.STABLE26

Mime-Version: 1.0

Date: Fri, 17 Aug 2012 13:03:56 GMT

Content-Type: text/plain

Expires: Fri, 17 Aug 2012 13:03:56 GMT

Last-Modified: Fri, 17 Aug 2012 13:03:56 GMT

X-Cache: MISS from WY-Ubuntu-2

Via: 1.0 WY-Ubuntu-2 (squid/3.0.STABLE26)

Proxy-Connection: close

 

Squid Object Cache: Version 3.0.STABLE26

Start Time:      Fri, 17 Aug 2012 13:01:14 GMT

Current Time:  Fri, 17 Aug 2012 13:03:56 GMT

Connection information for squid:

        Number of clients accessing cache:        1

        Number of HTTP requests received:        1

        Number of ICP messages received:        0

        Number of ICP messages sent:      0

        Number of queued ICP replies:        0

        Number of HTCP messages received:    0

        Number of HTCP messages sent:  0

        Request failure ratio:      0.00

        Average HTTP requests per minute since start:    0.4

        Average ICP messages per minute since start:      0.0

        Select loop called: 28890 times, 5.585 ms avg

Cache information for squid:

        Hits as % of all requests:          5min: 0.0%, 60min: 0.0%

        Hits as % of bytes sent:  5min: 100.0%, 60min: 100.0%

        Memory hits as % of hit requests:  5min: 0.0%, 60min: 0.0%

        Disk hits as % of hit requests: 5min: 0.0%, 60min: 0.0%

        Storage Swap size:  0 KB

        Storage Swap capacity:  0.0% used, 100.0% free

        Storage Mem size:  104 KB

        Storage Mem capacity:  1.3% used, 98.7% free

        Mean Object Size:  0.00 KB

        Requests given to unlinkd:      0

Median Service Times (seconds)  5 min    60 min:

        HTTP Requests (All):  0.00000  0.00000

        Cache Misses:          0.00000  0.00000

        Cache Hits:            0.00000  0.00000

        Near Hits:            0.00000  0.00000

        Not-Modified Replies:  0.00000  0.00000

        DNS Lookups:          0.00000  0.00000

        ICP Queries:          0.00000  0.00000

Resource usage for squid:

        UP Time:  161.343 seconds

        CPU Time:        0.556 seconds

        CPU Usage:      0.34%

        CPU Usage, 5 minute avg:      0.37%

        CPU Usage, 60 minute avg:    0.37%

        Process Data Segment Size via sbrk(): 2776 KB

        Maximum Resident Size: 28720 KB

        Page faults with physical i/o: 19

Memory usage for squid via mallinfo():

        Total space in arena:    3040 KB

        Ordinary blocks:        2943 KB      2 blks

        Small blocks:              0 KB      0 blks

        Holding blocks:          1520 KB      8 blks

        Free Small blocks:          0 KB

        Free Ordinary blocks:      96 KB

        Total in use:            4463 KB 98%

        Total free:                96 KB 2%

        Total size:              4560 KB

Memory accounted for:

        Total accounted:        1886 KB  41%

        memPool accounted:      1886 KB  41%

        memPool unaccounted:    2673 KB  59%

        memPoolAlloc calls:      2007

        memPoolFree calls:        984

File descriptor usage for squid:

        Maximum number of file descriptors:  1024

        Largest file desc currently in use:    13

        Number of file desc currently in use:  13

        Files queued for open:                  0

        Available number of file descriptors: 1011

        Reserved number of file descriptors:  100

        Store Disk files open:                  0

Internal Data Structures:

            26 StoreEntries

            26 StoreEntries with MemObjects

            25 Hot Object Cache Items

              0 on-disk objects
 

 

第一次运行,许多统计数据都是0。

 

执行如下命令获取网页:

 

~$/usr/bin/squidclient -t 1 http://www.linuxidc.com

 

遇到两个问题,获取页面失败。

 

问题一:

如果输出中出现类似‘access deny/denied’字样,说明在前面的配置‘Access Control Lists and Access Control Operators’有误,需要检查IP地址。由于是在本机测试,所以我在squid.conf中增加一行:

 

http_access allow localhost

 

问题二:

页面报告如下错误:

 

HTTP/1.0 501 Not Implemented

 

折腾了一会儿,发现是命令选项有误,不能指定‘-t 1’,该命令限定代理的跳数,可能是在家里测试,中间还有一个无线路由器的缘故。取消该选项,执行如下命令,OK!可以看到页面被get回来了。

 

~$/usr/bin/squidclient http://www.linuxidc.com

 

OK!!!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值