Linux下Squid代理服务器的架设与维护经验分享

通过架设专门的WWW(FTP)代理来满足用户的主要需求,通过架设socks5代理来满足用户的其他需求。

一、对使用者的分析

现有网络情况:

我校校园网通过光缆已将31座建筑物连通,光缆总长度约15Km,绝大多数楼中实现结构化布线,连入校园网的网络多媒体教室、教学基地、实验室、机房等约有数十个,连网计算机达3000多台 。我校目前出口有2个,一条速率为10M bps,通过光纤接入中国教育科研网CERNET,另一条速率为4M bps连入中国电信。

用户的需求:

我校校园网的使用者主体为在校学生及老师。根据统计,约80%的用户使用WWW、FTP等资源。我校现有Chinanet ip 126个,不可能分给所有的用户使用。通过架设代理服务器来实现让所有用户使用网络资源是最简单并且相对安全和可靠的方法。通过架设专门的WWW(FTP)代理来满足用户的主要需求,通过架设socks5代理来满足用户的其他需求。

二、硬件及软件的选择

硬件

Cache Server可以是一台普通的PC服务器加上cache软件(如Squid、Inktomi)构成,也可以是软硬件系统和一台专门的cache服务器。根据Chinanet出口的实际情况,4Mbps速率的出口,每秒最大传入数据量为约500K/s。我校主干网节点间为双千兆连接,到达部分实验室是百兆,到达宿舍为10M。送出的最大数据量为约12M/s。传送的数据量不是很大,使用传统的IA32构架服务器既可满足需求。我校网络中心主机房使用机柜来存放服务器。惠普公司的LH6000服务器,具有很强的扩展性,是新型的六路服务器。代理服务器的运算负荷不是很重,对于IO的要求较高。LH6000通过自定义配置可以达到这个要求。通过使用raid可以提高磁盘性能,增加数据的可靠性。代理服务器软件占用内存较大。LH6000可以支持8GB内存。最终选择配置如下:

配置

处理器:Intel Xeon 处理器

内存:2G

磁盘控制器:集成具有32MB高速缓存双通道Ultra3 SCSI HP NetRAID控制器

附加单通道:Ultra Wide SCSI控制器

内置存储:热插拔5x18G半高驱动器

网卡:内置INTEL 82559 100M网卡

电源:3个热插拔电源

RAID使用了RAID5模式,这个模式是向阵列中的磁盘写数据,奇偶校验数据存放在阵列中的各个盘上,允许单个磁盘出错。RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。这样, 任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。

软件

Squid Internet Object Cache (Harvest Project的後续版本) 是美国政府大力助的一项研究计划。Squid是一个开放源代码的代理服务器软件。它是一个为UNIX系统下运行的全功能的代理服务器软件。它可以为HTTP协议、FTP协议以及其他使用URL方式定位的协议作缓存。它支持客户端使用SSL协议进行数据传送。它可以使用ICP, HTCP, CARP, Cache Digests等协议和方式和其他运行squid的服务器进行协同。它支持SNMP协议,可以用相应的软件来做协调和管理。并且能配置详细的访问控制列表(acl)。

操作系统
以前学校的代理服务器使用linux作为操作系统。这是因为以前的代理服务器通常还兼作其他的服务器。很多服务器软件是专门为linux开发的,或者在linux上运行的效率最高。Squid本身是为unix-like操作系统开发的。本身对系统没有太多的要求。目前我校Chinanet代理服务器使用的是FreeBSD作为操作系统。

没有选择Linux有下面几点原因:

Linux的核心部分开发相对比较开放,FreeBSD的核心是由一个严格的core team来完成的。相对检查更加严格。从核心部分比较BSD的内核更加稳定。

Linux对高负荷的承载能力不如FreeBSD。对于高负荷下程序出错的容忍力,BSD远强于Linux。

许多著名的网站,如:yahoo, netease 等著名的商业网站使用的就是freebsd,稳定性和性能早已通过很多专家的评测,远远强于Linux。

在著名的文章“Linux vs BSD: A Tale of Two System”中,是这样评价Freebsd的: FreeBSD focuses on the Intel Architecture PC and server platforms, and on providing the best performance and stability possible. The DEC/Compaq Alpha is also supported.

但是Freebsd也有不如Linux的弱点。主要表现在磁盘IO的性能上。这主要是因为Freebsd使用的文件系统—UFS的性能不如linux上使用的ext2/ext3。但是在加上softupdate之后会有很大的改进。而且出国代理上配置的使用raid5模式,磁盘使用高转速scsi硬盘,在上述硬件配置的情况下,读取squid cache的数k大小的小文件使用ext2和ufs+softupdate的效率的差别在万分之一以下。对于负载数千用户的代理服务器来说,可以忽略这样的效率差别。

基于以上原因,最终选用Freebsd作为代理服务器的操作系统。

三、代理服务器软件的安装

squid的安装

freebsd本身的ports程序带有squid的稳定版本。目前squid的最新版本是2.4.STABLE6。在freebsd的/usr/ports/www/squid 目录下执行make;make install就会将最新版本的squid代码下载、编译并最终安装到/usr中的相应路径中。

Squid本身会被安装到/usr/local/sbin下

Squid的cache目录默认为/usr/local/squid/cache

Squid的log目录默认为/usr/local/squid/logs

squid的配置文件目录默认为/usr/local/etc/squid

这样的安装方式比直接使用二进制的package安装要好。因为二进制的package不能保证在自定义的系统上稳定运行。下载源代码代码在本地进行编译之前,首先会校验源代码的MD5 checksum,这样能保证我得到的源代码是未经修改过的版本。然后再在本地进行编译。最后安装到相应目录。

Squid的配置

Squid的配置文件是squid.conf

部分参数的配置如下:(为保证代理服务器安全,部分参数用*代替)

http_port 8080 设置http代理端口为8080 cache_peer pa.us.ircache.net sibling 3128 3130 login=*:*

cache_peer sj.us.ircache.net sibling 3128 3130 login=*:*

cache_peer * parent 13280 4827 htcp *:*

这几行是使用squid可以和其他几台机器进行协同工作的特性,同几台组成cache_peer。具体设置在后面的优化部分会解释。

(0)

相关推荐

  • 对squid中refresh_pattern的一些理解和建议

    refresh_pattern的作用: 用于确定一个页面进入cache后,它在cache中停留的时间.refresh_pattern规则仅仅应用到没有明确过时期限的响应.原始服务器能使用Expires头部,或者Cache-Control:max-age指令来指定过时期限. 语法:refresh_pattern [-i] regexp min percent max [options] min参数是分钟数量.它是过时响应的最低时间限制.如果某个响应驻留在cache里的时间没有超过这个最低限制,那么

  • nginx+apache+mysql+php+memcached+squid搭建集群web环境

    服务器的大用户量的承载方案一.前言 二.编译安装 三. 安装MySQL.memcache 四. 安装Apache.PHP.eAccelerator.php-memcache 五. 安装Squid 六.后记 一.前言,准备工作当前,LAMP开发模式是WEB开发的首选,如何搭建一个高效.可靠.稳定的WEB服务器一直是个热门主题,本文就是这个主题的一次尝试.我们采用的架构图如下: 引用-------- ---------- ------------- --------- ------------| 客

  • Linux下Squid配置详解 Squid代理服务器配置第1/3页

    代理服务器的功能是代理网络用户取得网络信息,它是网络信息的中转站.随着代理服务器的广泛使用,随之而来的是一系列的安全问题.由于没有对代理服务器的访问控制策略作全面细致的配置,导致用户可以随意地通过代理服务器访问许多色情.反动的非法站点,而这些行为往往又很难追踪,给管理工作带来极大的不便. Squid是Linux下一个缓存Internet数据的代理服务器软件,其接收用户的下载申请,并自动处理所下载的数据.也就是说,当一个用户想要下载一个主页时,可以向Squid发出一个申请,要Squid代替其进行下

  • WINDOWS系统下怎样配置squid做CDN的简明图解

    先提条件,您预安装配置squid的这台计算机必须是联入网络的,系统版本是windows 2000/xp/2003/server 2003. 1)先下载Squid for Windows版本(http://www.jb51.net/softs/43599.html),下载地址如下(ZIP文件名称:squid-2.7.STABLE4-bin.zip),可以把这个文件下载到桌面,这样好找好操作. Squid是Linux/Unix下著名的代理服务器软件,很多商业版本的代理服务器都是基于Squid进行开发

  • 基于Xen的VPS 配置squid服务器

    安装很简单:apt-get install squid 配置中的重点是打开用户验证. 通过htpasswd建立用户名密码文件,然后在squid的配置文件中设置. http_port 3128 auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid.password auth_param basic children 5 auth_param basic realm Hamo's Private Proxy auth_p

  • 在Windows下利用Squid开设代理服务器

    在"突破公司网络封锁,畅游无限网络"一文提到解决方案中,是利用ccproxy来建立proxy server.ccproxy是图形界面程序,使用比较简单,但是存在着两个问题:首先ccproxy不是免费软件,未注册版本只能提供3个连接:另外一个就是从性能还是稳定性上都不是特别让人满意. 后来发现自己的确孤陋寡闻,Unix/Linux下大名鼎鼎的开源免费代理软件Squid(www.squid-cache.org)是有Windows的Native版本SquidNT.既然如此,Squid一出,谁

  • PHP Squid中可缓存的动态网页设计

    当然,前提要先打开CDN中一个功能reload_into_ims on.这样用户发送过来no-cache也不怕了.因为这样会给给no-cache转成If-Modified-Since .所以我们写程序主要是对If-Modified-Since控制就好了.记的,缓存系统架构中计中最好是后端来控制,所以最好的方法是程序来管理过期.呵,我只会php,就用php写一个,别的程序也是一样 见我下面的程序,呵呵,5分钟过期. <?php $headers = apache_request_headers()

  • FreeBSD6.0Release+Squid+Socks5服务器架设笔记

    架设此服务器,使客户端通过设置代理服务器的squid来浏览网页,通过代理服务器的socks5来使用QQ.MSN.证券等服务,下面简单介绍服务器的架设过程. 一.安装FreeBSD6.0Release 从ftp://ftp.freebsd.org/pub/FreeBSD/torrents/6.0-RELEASE下载最新版本FreeBSD6.0Release刻成光盘并选择最小化安装(安装时开通ftp及ssh服务). 网络信息:网段 -> 192.168.10.0/24fxp0 -> 内网网卡 19

  • centos下简单配置安装Squid 3.0反向代理

    安装篇: 本教程应用环境为干净centos 5.5 ,预先分好并加载/data分区,并且关闭selinux及iptables 首先修改文件描述符并设定临时端口范围,这些设置重启后生效 复制代码 代码如下: cat >> /etc/security/limits.conf <<DDD * soft nofile 8192 * hard nofile 20480 DDD cat >> /etc/sysctl.conf <<DDD #set temp port r

  • Windows下安装squid的步骤详解

    一.下载squid for windows 下载地址:http://www.acmeconsulting.it/SquidNT.html http://www.jb51.net/softs/43599.html 二.Windows下安装squid与配置 1.解压squid-2.6.STABLE6-NT-bin.zip到C:\squid 2.单击[开始],选择"运行",输入 cmd ,在命令提示符窗口内输入以下命令: C:\>cd c:\squid\etc C:\squid\etc

  • 清除指定squid缓存文件的脚本代码分享

    squid会根据用户请求网页的URL进行哈希,生成缓存文件,存放在某一个目录中.squid启动之后,将在内存中建立一个哈希表,记录硬盘中缓存文件配置的情形. 对于类似http://jb51.net/index.html之类的网页,squid只会生成一个缓存文件.可以用squid附带的squidclient工具清除: squidclient -m PURGE -p 80 "http://jb51.net/index.html" 而对于带有参数的网页,例如新浪播客的Flash播放器http

  • 简单架设SSH+Squid代理服务器的自由上网通道的方法

    而SSH则很好地解决了这个问题.你只需要一个vps,就可以配置了.架设还是挺容易的. 安装webmin webmin是一个可视化管理linux系统的免费软件.我们安装它是为了方便管理squid代理服务器或者linux系统.详细安装地址如下: CentOS 安装Webmin管理系统 安装squid代理服务器 1.在安装squid之前,我们需要安装EPEL软件包. 复制代码 代码如下: rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i38

  • linux下安装Squid代理的详细配置教程

    1.如果系统中还没有装squid,按以下顺序输入命令后即可完成安装 # wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE18.tar.gz //下载Squid代理安装包 # tar -zxvf squid-3.0.STABLE18.tar.gz //解压Squid安装包 # cd squid-3.0.STABLE18 # ./configure --prefix=/usr/local/squid --sysconfd

  • Gzip在apache2中的设置和squid对它的处理

    如果要开启gzip的话,一定要打开下面二个模块. 复制代码 代码如下: LoadModule headers_module modules/mod_headers.so LoadModule deflate_module modules/mod_deflate.so 设置压缩比率,取值范围在 1(最低) 到 9(最高)之间,不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源. 复制代码 代码如下: DeflateCompressionLevel 3 AddOutputFilter DE

  • 搭建一个大型网站架构的实验环境(Squid缓存服务器篇)第1/2页

    Squid是一个应用级代理,在保证客户端主机和服务器主机网络连通后,需要客户端软件做相应的设置后才能使用,比如给 Internet Explorer设置代理服务器地址.端口等.WEB缓存功能对于一个规模较大.访问繁忙的网络来说是有必要的,IBM网站上的一篇文章,详细分析介绍了WEB缓存给上网用户带来的好处:http://www-900.ibm.com/developer ... achinga/index.shtml 下面我们就介绍一下squid的有关内容. §§ 安装运行squid Redha

  • 使用Squid做代理服务器的方法

    说到代理服务器,我们最先想到的可能是一些专门的代理服务器网站,某些情况下,通过它们能加快访问互联网的速度.其实,在需要访问外部的局域网中,我们自己就能设置代理,把访问次数较多的网页保存在缓存中,从而"提高"网络速度.更重要的是,我们能通过代理服务器,达到控制访问权限的目的.在 Windows中,有很多这样的软件,如:WinGate.SyGate等,不过,本文要讨论的,是能给你充分自由的Linux下的Squid. Linux下的代理服务器软件也不是只有Squid,不过在大部分Linux版

随机推荐