当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : Squid使用详解
帖子发表于 : 2008-03-25 19:27 
头像

注册: 2006-09-10 22:36
帖子: 10663
地址: 北京
送出感谢: 1
接收感谢: 16
做为眼下最流行的操作系统,Linux已经越来越受到世人的关注。虽然目前Linux的软件还不是很丰富,
替代WINDOWS作为普通PC机操作系统还为时过早,但是在服务器领域,Linux的稳定性,可操作性决不
输于任何操作系统,并且也有优秀的软件支持。Squid就是其中之一。Linux加Squid的组合做为代理
服务器,性能远远超过WINNT加MSPROXY2.0(个人观点),为几百人的小型局域网代理绰绰有余。下
面,我就详细的介绍Squid的安装及使用技巧,希望大家能够喜欢上它。

1.Squid简介

  Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。
也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid
连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面
时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。目前,Squid 可以代理HTTP, FTP,
GOPHER, SSL 和 WAIS 协议,暂不能代理POP, NNTP等协议。不过,已经有人开始修改Squid,相信不
久的将来,Squid能够代理这些协议。

  Squid能够缓存任何数据吗?不是的。象缓存信用卡帐号、可以远方执行的scripts、经常变换的
主页等是不合适的也是不安全的。Squid可以自动的进行处理,你也可以根据自己的需要设置Squid,
使之过滤掉你不想要的东西。

  Squid可以工作在很多的操作系统中,如AIX, Digital Unix, FreeBSD, HP-UX, Irix, Linux,
NetBSD, Nextstep, SCO, Solaris,OS/2等,也有不少人在其他操作系统中重新编译过Squid。

  Squid对硬件的要求是内存一定要大,不应小于128M,硬盘转速越快越好,最好使用服务器专用SCSI
硬盘,处理器要求不高,400MH以上既可。

2. Squid的编译和运行

  其实现在的Linux发行套件中基本都有已经编译好的Squid,你所作的就是安装它既可。如果你手头
没有现成的编译好的Squid或想使用最新的版本,去ftp:squid.nlanr.net下载一份,自己编译。

  Squid的编译是非常简单的,因为它基本上是自己配置自己。最容易出现的问题是你的系统上没有
合适的编译器,这可以通过安装相应的编译器解决。如果出现其他问题,你可以问一下有经验的用户或
到相应的邮件列表寻找帮助。

  编译Squid之前,最好建一个专门运行Squid的用户和组。我就在自己的服务器上建了一个名为
squid的用户和组,用户目录设为/usr/local/squid。然后su为用户squid并从squid.nlanr.net下载
Squid的源文件到目录 /usr/local/squid/src中,用如下命令进行解压:

  
代码:
tar xzf squid-2.0.RELEASE-src.tar.gz


  
代码:
cd /usr/local/squid/src/ squid-*.*.RELEASE /


  
代码:
./configure


  
代码:
make


  
代码:
make install


  第一个命令在目录/usr/local/squid/src中产生一个新的子目录/squid-*.*.RELEASE/。命令
./configure会自动查询你的系统配置情况以及你系统中使用的头文件。不加参数的./configure会
把Squid安装在目录/usr/local/squid中,如果你想使用其他目录,用如下命令
./configure --prefix=/some/other/directory,这会把Squid安装在目录/some/other/directory中。
make命令编译Squid,make install命令安装Squid。

  不出意外的话,目录/usr/local/squid中会出现如下目录:

  /bin

  /cache

  /etc

  /logs/

  /src (自己创建的)

  目录/bin中含有Squid可执行程序,包括Squid本身,ftpget等。

  目录/cache包含Squid缓存的数据,其中包含象/00/ /01/ /02/ 以及/03/这样的目录,这些目录
中还有子目录,因为目录多了比在一个目录成千上万的文件中寻找一个文件更容易,速度更快。

  目录/etc中包含Squid的唯一的配置文件squid.conf。

  目录/logs中包含Squid的日志。


3. squid.conf文件的配置

  在安装Squid后,在目录/usr/local/squid /etc中会自动产生一个样本squid.conf文件,文件中
对每一个选项都有详细的说明,用户可以通过修改该文件以满足不同的需要。

  总的来说,有如下几个重要选项:

  ·http_port:设定Squid监听的端口,你最好设一个比较好记的端口号,以便在进行客户机配置
时容易记住。我的机器上端口号设的是8080。缺省为3128。

  ·cache_mem:设定Squid占用的物理内存,根据我的经验,cache_mem的大小不应超过你的服务
器物理内存的三分之一,否则将会影响机器的总体性能。

  ·maximum_object_size:设定Squid可以接收的最大对象的大小。Squid缺省值为4M,我自己入
认为太大,你可以根据自己的需要进行设定。

  ·cache_dir:设定缓存的位置、大小。一般看起来形式如下
“cache_dir /usr/local/squid/cache 100 16 256”。 /usr/local/squid/cache代表缓存的位置;
100代表缓存最大为100M;16和256代表一级和二级目录数。

  ·cache_effective_user:设定使用缓存的有效用户。缺省为用户nobody,如果你的系统中没
有用户nobody,最好建一个或以非root用户运行Squid。

  下面我给出一个最简单的squid.conf文件:

  
代码:
#squid.conf - a very basic config file for squid

  #Turn logging to it's lowest level

  debug_options ALL,1

  #defines a group (or Access Control List) that includes all IP addresses

  acl all src 0.0.0.0/0.0.0.0

  #define RAM used

  cache_mem 32M

  #defines the cache size

  cache_dir /usr/local/squid/cache 100 16 256

  #allow all sites to use connect to us via HTTP

  http_access allow all

  #allow all sites to use us as a sibling

  icp_access allow all

  #test the following sites to check that we are connected

  dns_testnames internic.net usc.edu cs.colorado.edu mit.edu yale.edu

  #run as the squid user

  cache_effective_user squid squid


  这个配置文件允许所有人使用Squid,创建了100M缓存,使用32M内存,在缺省位置
"/usr/local/squid/cache"缓存数据,所有缓存数据以组squid和用户squid身份保存,端口为3128。
虽然这个配置很不安全,但是它已经能使用了。


4. 运行Squid

  首先以root身份登陆。运行如下命令:

  
代码:
/usr/local/squid/bin/squid –z


  该命令会产生Squid所有的缓存目录。

  如果你想前台执行Squid,接着执行命令:

  
代码:
/usr/local/squid/bin/squid -NCd1


  该命令正式启动Squid。如果一切正常,你会看到一行输出

  Ready to serve requests.

  如果想后台运行Squid,把它做为一个精灵进程,执行命令:

  
代码:
/usr/local/squid/bin/squid


  观察Squid是否运行使用命令:

  
代码:
squid -k check


  输出会告诉你Squid的当前状态。


  好了,文章先写到这里,其实这里介绍的都是最基本的东西,Squid有好多高级的功能,
如做WEB服务器的高速缓存,做二级代理服务器,做为防火墙,以及怎样设定过滤规则等,这里
就不详述了,如果有机会再奉献给大家。


_________________
看破、放下、自在、随缘、念佛
真诚、清净、平等、正觉、慈悲


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-04-12 13:44 
头像

注册: 2006-06-01 19:10
帖子: 58
地址: China
送出感谢: 0 次
接收感谢: 0 次
好的文章啊!!顶一下


_________________
ShareItem.org,记录着我学习 Linux 的点滴

AMD Athlon 64 X2 3800+
2G DDR2 667
nvidia 8600gt
Arch + kdemod 4.1


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-04-14 23:24 

注册: 2007-04-25 11:49
帖子: 393
送出感谢: 0 次
接收感谢: 0 次
代码:
./configure
不带参数好像做反向代理时候不能接多个后台吧?


页首
 用户资料  
 
4 楼 
 文章标题 : Re: Squid使用详解
帖子发表于 : 2011-08-17 14:42 

注册: 2010-12-25 4:59
帖子: 80
送出感谢: 0 次
接收感谢: 0 次
关于squid的应用场景, 楼主提到这样的一句话“为几百人的小型局域网代理绰绰有余”。

是不是类似这样的场景: 在一个公司A的局域网里配置了个Squid做Web缓存, 然后这个A公司里所有的上网连接都通过个Squid, Squid对内容做缓存?这样可心节省公司A访问外网的流量?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译