且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

rhel6下安装配置Squid过程

更新时间:2022-08-19 20:30:07

一、简介

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。

Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。

1.1 工作流程

当代理服务器中客户端需要的数据时:

a. 客户端向代理服务器发送数据请求;

b. 代理服务器检查自己的数据缓存;

c. 代理服务器在缓存中找到了用户想要的数据,取出数据;

d. 代理服务器将从缓存中取得的数据返回给客户端。

当代理服务器中没有客户端需要的数据时:

1. 客户端向代理服务器发送数据请求;

2. 代理服务器检查自己的数据缓存;

3. 代理服务器在缓存中没有找到用户想要的数据;

4. 代理服务器向Internet 上的远端服务器发送数据请求;

5. 远端服务器响应,返回相应的数据;

6. 代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。

rhel6下安装配置Squid过程

Squid代理服务器工作在TCP/IP的应用层。

rhel6下安装配置Squid过程

1.2 Squid 分类

按照代理类型的不同,可以将Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为普通代理和透明代理。

  • 普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;

  • 透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;

  • 反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

官方地址:http://www.squid-cache.org/

参考文档:http://www.squid-cache.org/Doc/config/

二、系统环境

操作系统:CentOS release 6.4 (Final)

Squid版本:squid-3.1.10-20.el6_5.3.x86_64

SELINUX=disabled

HTTP Service: stoped

三、安装Squid服务

3.1 检查squid软件是否安装

# rpm -qa|grep squid

3.2 如果未安装,则使用yum 方式安装

# yum -y install squid

rhel6下安装配置Squid过程

3.3 设置开机自启动

# chkconfig --level 35 squid on             //在3、5级别上自动运行squid服务

四、squid服务器的配置文件说明

squid 的主配置文件是 /etc/squid/squid.conf,所有squid的设定都是在这个文件里配置,下面我们来讲解一下该文件的配置选项。

http_port 3128      //设置监听的IP与端口号
cache_mem 64 MB      //额外提供给squid使用的内存,squid的内存总占用为 X * 10+15+“cache_mem”,其中X为squid的cache占用的容量(以GB为单位),//比如下面的cache大小是100M,即0.1GB,则内存总占用为0.1*10+15+64=80M,推荐大小为物理内存的1/3-1/2或更多。
maximum_object_size 4 MB   //设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘
minimum_object_size 0 KB   //设置squid磁盘缓存最小文件
maximum_object_size_in_memory 4096 KB   //设置squid内存缓存最大文件,超过4M的文件不保存到内存
cache_dir ufs /var/spool/squid 100 16 256   //定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量
logformat combined %&gt;a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}&gt;h" %Ss:%Sh        //log文件日志格式access_log
/var/log/squid/access.log combined  //log文件存放路径和日志格式
cache_log /var/log/squid/cache.log   //设置缓存日志
logfile_rotate 60   //log轮循 60天
cache_swap_high 95  //cache目录使用量大于95%时,开始清理旧的cache
cache_swap_low 90   //cache目录清理到90%时停止。
acl localnet src 192.168.1.0/24  //定义本地网段
http_access allow localnet  //允许本地网段使用
http_access deny all  //拒绝所有
visible_hostname squid.david.dev  //主机名
cache_mgr mchina_tang@qq.com  //管理员邮箱

注意:squid2.0 和squid3.0的差别还是很大的,如果配置完,启动squid不正确,请大家多多参考官方文档的相应版本说明。

Squid代理常见错误

读取错误

错误描述:(60)Operation timed out

现象:某些网站无法打开(比如google.com.hk),或开始能够打开部分内容但页面刷新几次后反而无法打开,提示“读取错误”

解决方法:squid.conf配置文件中的 acl allowmax maxconn 30,将最大连接数设置大一点,网页无法打开的原因,可能是因为网页包含的资源文件太多,超过了最大的连接数。

访问被拒绝

当尝试取回该 URL 时遇到下面的错误:http://www.163.com/

访问被拒绝。

Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.

缓存服务器的管理员 admin@domain.com.

解决方法

1、代理服务器机器的DNS配置问题,代理服务器机器不能找到指定urlip地址导致。检查/etc/resolv.conf文件配置是否正确,如不正确添加正确的配置信息,比如说:
nameserver ###.###.###.###
nameserver ###.###.###.###
可以配置多个DNS server
重新启动squid服务。

2、访问控制http_access allow all

无法进行转送操作

当尝试取回该 URL 时遇到下面的错误:http://ip/

目前无法将您的请求进行转送操作

This request could not be forwarded to the origin server or to any parent caches. The most likely cause for this error is that the cache administrator does not allow this cache to make direct connections to origin servers, and all configured parent caches are currently unreachable.

参考:http://home.arcor.de/pangj/squid/chap10.html

检测squid.conf配置   squid -k parse  报错

WARNING: Netmasks are deprecated. Please use CIDR masks instead.
2010/10/31 21:39:41| WARNING: IPv4 netmasks are particularly nasty when used to compare IPv6 to IPv4 ranges.
2010/10/31 21:39:41| WARNING: For now we will assume you meant to write /28
2010/10/31 21:39:41| WARNING: Netmasks are deprecated. Please use CIDR masks instead.
2010/10/31 21:39:41| WARNING: IPv4 netmasks are particularly nasty when used to compare IPv6 to IPv4 ranges.
2010/10/31 21:39:41| WARNING: For now we will assume you meant to write /28

解决方法

将配置文件中的192.168.1.0/255.255.255.0   改为   192.168.1.0/24   形式就OK了。

squid缓存目录没有权限

2004/11/01 23:06:29| Creating Swap Directories
FATAL: Failed to make swap directory /Cache1/00: (13) Permission denied
Squid Cache (Version 2.5.STABLE7): Terminated abnormally.
CPU Usage: 0.000 seconds = 0.000 user + 0.000 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 10

解决方法:
/Cache1目录权限错误,请检查/Cache1目录所有者是否为squid用户所有











本文转自 天乐 51CTO博客,原文链接:http://blog.51cto.com/tianlegg/1696034,如需转载请自行联系原作者