在服务器领域,Linux的稳定性,可操作性决不输于任何操作系统,并且也有优秀的软件支持。Squid就是其中之一。Linux加Squid的组合做为代理服务器,为几百人的小型局域网代理绰绰有余。下面,我就简要介绍一下Squid的基本使用。
一、Squid的工作原理
Squid是一个缓存网络数据的软件,当一个用户要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。目前,Squid 可以代理HTTP, FTP, GOPHER, SSL 和WAIS协议,暂不能代理POP, NNTP等协议。
Squid的另一个优越性在于它使用访问控制清单(ACL)和访问权限清单(ARL)。访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。
因此,squid的主要作用可归结为:
1、通过缓存的方式为用户提供Web访问加速2、对用户的Web访问进行过滤控制
二、Squid的用途
Squid代理服务可以分为普通代理和透明代理两种。
普通代理服务:需要客户机在浏览器中指定代理服务器的地址、端口,不适于推广应用。
透明代理服务:客户机不需要指定代理服务器地址、端口等信息,但是需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理,适用于企业的网关主机(共享接入Internet)中。
Squid的访问控制应用
三、Squid的配置应用
首先喽,当然是安装Squid文件包了。
主配置文件:/etc/squid/squid.conf默认监听端口:TCP 3128默认访问日志文件:/var/log/squid/access.log
在主配置文件中,有如下几个重要选项:
http_port:设定Squid监听的端口,一般设为8080。缺省为3128。
cache_mem:设定Squid占用的物理内存,根据经验,cache_mem的大小不应超过你的服务器物理内存的三分之一,否则将会影响机器的总体性能。
maximum_object_size:设定Squid可以接收的最大对象的大小,缺省值为4M,
reply_body_max_size:设定服务器响应数据的最大值。(用于访问控制中)
cache_dir:设定缓存的位置、大小。一般形式如下:
cache_dir ufs /usr/spool/squid/ 100 16 256
ufs 代表缓存数据的存储格式;
/usr/spool/squid/ 代表缓存的位置;
100代表为缓存目录分配的磁盘空间为100M;
16和256代表缓存空间中一级和二级目录数。
ache_mgr:定义服务器管理员的邮箱地址;
error_ dictory:定义连接失败时显示错误信息的文字类型;
visible_hostname:定义可见的主机名;
下面就介绍一下普通代理服务的实现:我们需要客户机在浏览器中指定代理服务器的地址、端口。
打开客户端的浏览器主页。点击Edit选中Preferences选项。
点击Avanced菜单,选中Network选项,点击Setting,
选中Manual proxy configuration,在对话框中填上代理服务器的IP地址,端口为3128
启动squid服务,设置代理服务器的squid配置文件和客户端的浏览器后,在服务器端检查一下语法是否有错误,命令为:squid –k parse 重新读取配置文件。
打开客户端浏览器,输入要访问的IP地址,我们先来下载一下服务器上已经建立好的两个文件,分别为9M、11M。 由于在squid服务器上我们定义的规则才为只允许下载最大的文件为10M。
因此当我们下载大小为9M的文件时,提示可以下载,如图:
当下载大小为11M的文件时,提示错误信息,如图:
由于在配置文件中我们设置了管理员邮箱地址,所以在提示错误信息时,会显示管理员邮箱。
在配置文件中我们设置的错误提示信息显示为中文,由于客户端没有安装中文字库,所以显示出来的为乱码。
转载于:https://blog.51cto.com/linuxtro/281567