zoukankan      html  css  js  c++  java
  • 【转】squid的安装配置

    做为眼下最流行的操作系统,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的当前状态。
  • 相关阅读:
    USACO 3.3 A Game
    USACO 3.3 Camelot
    USACO 3.3 Shopping Offers
    USACO 3.3 TEXT Eulerian Tour中的Cows on Parade一点理解
    USACO 3.3 Riding the Fences
    USACO 3.2 Magic Squares
    USACO 3.2 Stringsobits
    USACO 3.2 Factorials
    USACO 3.2 Contact
    USACO 3.1 Humble Numbers
  • 原文地址:https://www.cnblogs.com/pony/p/1550828.html
Copyright © 2011-2022 走看看