音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

Linux下Squid代理服务器的架设与维护经验分享
日期:2011-06-18 01:10:01   来源:脚本之家

通过架设专门的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。具体设置在后面的优化部分会解释。

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    WIN服务器linux服务器FTP服务器DNS服务器其他