基于Linux反向代理技术在校园网的研究与实现
2011-01-06邵闻珠
邵闻珠,张 丽
(1石河子大学网络中心,石河子832003;2石河子大学信息工程学院,石河子832003)
基于Linux反向代理技术在校园网的研究与实现
邵闻珠1,张 丽2
(1石河子大学网络中心,石河子832003;2石河子大学信息工程学院,石河子832003)
目前我国校园网采用NAT方式或代理技术解决了访问公众网络慢的问题,但inter net用户访问校园网服务器资源速度慢的问题仍比较突出。本文提出以linux为平台使用squid通过反代理技术解决该问题。结果显示:该技术能够节省电信IP地址,而且可以有效保护内部服务器,大大提高对校园网内部资源访问速度。实践表明该方法效果良好。
反向代理;代理;web服务器加速;squid;linux
目前,我国高校已解决了校园网用户访问公众网速度慢的问题,但在公众网访问高校资源仍然很慢,其原因是教育网与带电信、网通等公众网连接带宽较低,不同网络间资源互访形成瓶颈,从而大大降低了用户访问速度。为了解决此问题,通常采用2种方法:1)采用双链路,服务器安装两块网卡,一块连接教育网,一块连接公众网。设置连接公众网的路由为默认路由,然后添加教育网所有地址的静态路由,根据不同的源地址请求做出响应。该方法的优点是设置简单,易于维护。缺点:每台需要服务器均要占用2个IP地址,添加的静态路由多,当内部部门服务器没有放置在网络中心时,需要单独建设与电信、网通等链路,成本较高;2)在总出口路由器或防火墙设置重定向功能。当在公众网访问内部服务器时,首先请求到达防火墙或路由器,然后重定向到内部服务器。该方法优点是当多个服务器需要为双出口时,设置指向教育网的静态地址只需要在路由器设置1次,从而节省IP地址,特别是节省了公众网的地址数量。缺点:同种服务实用相同端口只能重定向1次,而高校内不同部门web站点较多,因而不能满足用户的需要[1-3]。
针对上述方法的缺陷,本文提出了一种基于linux通过squid[4]实现反向代理,通过设置1台反代理服务器,可使公众网用户快速访问校园网内部1台或多台服务器,并且具有较高的安全性[5]。
1 反向代理与代理概念和工作原理
1.1 代理
通常所指的代理是指在局域网内架设代理服务器,指定代理监听端口,当用户访问外部站点时,http请求被传递给代理服务器(用户在浏览器中设置好代理服务器地址),代理服务器监听到代理请求后访问外部站点取回数据,并在本地缓存,当其他用户大再次访问该站点时,代理服务器首先查询缓存数据,如果被命中,则直接从缓存中取出数据发送给用户,从而大大提高访问速度,并且代理服务器是Inter net链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联 (OSI)模型的对话层,主要的功能有:1)连接Inter net与Intranet充当防火墙;2)共享因特网连接,节省了IP地址;3)提高用户访问速度,节约通信带宽。
1.2 反向代理
反向代理[6-7]即通常所说的 web服务器加速,是一种通过在繁忙的web服务器和inter net之间增加一个高速的web缓冲服务器(即web反向代理服务器)来降低实际的web服务器的负载。web服务器加速(反向代理)是针对web服务器提供加速功能。其作为代理cache,但并不针对浏览器用户,而针对1台或多台特定web服务器。实施反向代理,只要将reverse pr oxy cache设备放置在1台或多台web服务器前端即可。当互联网用户访问某个web服务器时,通过DNS服务器解析后的IP地址是reverse proxy server的IP地址,而非原始web服务器的IP地址,这时reverse pr oxy server设备充当web服务器,浏览器可与其连接,无需再直接与web服务器相连,大量web服务工作量被卸载至反向代理服务。因此,其不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,从而提高了用户访问速度。
1.2.1 反向代理工作原理
动态DNS技术是一种基于策略的更加智能化的动态DNS,这种基于策略的动态DNS的服务器可以根据用户所在网络的不同,返回不同的解析结果,对教育网用户解析出教育网地址,对公众网用户解析出公众网地址。当用户发出1个HTTP请求时,通过动态DNS将请求定向至反向代理服务器,由反向代理服务器处理请求[8-9]。反向代理一般只缓存可缓冲的数据(如ht ml网页和图片等),如果反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的web服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存至本地,供下一个请求者使用,squid正是基于这种原理实现反向代理技术。
图1 反向代理工作拓扑图Fig.1 Anti-agent work topological diagram
2 反向代理实现设计
架设1台反向代理服务器,平台采用linux,安装squid。此反向代理服务器架设在校园网总出口旁路位置,实现反向代理技术主要目的是为了明显提高公众网络访问内部服务器的速度,因此2块网卡、1块连接在公众网,另一块网卡安装在总出口路由器旁路位置。架设1台DNS服务器,并将此动态DNS服务器配置成动态DNS。将内部需要实现加速访问的服务器域名均解析为反向代理服务器公众网IP地址。设计原理图如下:
图2 反向代理实现设计图Fig.2 Anti-agent work design diagram
3 具体实例
石河子大学校园网内部有多个web站点,石河子大学经贸学院主页站点IP地址为219.247.1.11,招生办主页站点,IP地址为202.201.166.125,教务处主页站点IP地址为202.201.162.237,为了提高公众网对内部服务器的访问速度,设置了1台反向代理服务器(平台为Linux,使用squid)连接内部网络网卡IP地址为192.168.1.2,连接公众网为网卡IP地址为124.119.50.19.,见图2。
图3 实例实现拓扑图Fig.3 Actual implementation topological diagram
3.1 squid安装
#./configure--prefix=/usr/local/squid--enable
epoll--disable-ident-l ookups-enable-async-io=
160--enable-storeio=ufs,aufs,diskd--enable-snmp--enable-cache-digests--enable-useragent--enable-killparent-hack--disable-inter nal-dns
脊髓保护区两个边界不同画法PTV适形度的指数对比差异无统计学意义(P>0.05),不同布野方式内PTV适形度的指数对比差异有统计学意义(P<0.05),详见表1。
#make
#make install
3.2 配置squid.conf文件
#vi/usr/local/squid/squid.conf
htt p_port 80//squid反向代理监听的端口,
htt pd_accel_host virt ual//反向代理多台服务器时必须设置为virtual,若只代理1台服务器则直接指定服务器IP地址
htt pd_accel_port 80//内部 web服务的端口号
httpd_accel_with_proxy off//如果希望squid既作反向代理服务器又作本地机器的上网代理,需要将此设为on,默认是off
httpd_accel_uses_host_header on//完成多个后台web服务器的反向代理功能必须设置为on。
3.3 启动squid
#/usr/local/squid/sbin/squid-k parse//测试配置是否正确
#/usr/local/squid/sbin/squid-z//首次启动必须执 行 此 步 骤 建 立 s wap 目 录 # /usr/l ocal/squid/sbin/squid//启动
3.4 编辑hosts文件
如果使用/etc/hosts文件来实现内部DNS(编译时应使用-disable-inter nal-dns选项),编辑/etc/hosts文件添加如下条目:
202.20 1.160.10 www.shzu.edu.cn
202.20 1.166.125 zb.shzu.edu.cn
202.20 1.162.137 j wc.shzu.edu.cn
3.5 设置DNS
启用动态DNS,对源地址为公众网的域名解析时,使3台服务器的域名均指向反向代理服务器地址124.119.50.19,即:
www.shzu.edu.cn IN A 124.119.50.19;
zb.shzu.edu.cn IN A 124.119.50.19;
j wc.shzu.edu.cn IN A 124.119.50.19。
4 小结
反向代理技术的应用,使用户通过公众网访问我校校园网内部服务器的速度明显提高,使用前平均访问速度为120 ms,用代理服务器后平均访问速度为82 ms,同时还有效使保护了我校内部服务器,并节约了紧缺的公众网IP地址3个。反向代理技术能够适应多种应用场合,显示了较高的实用性。对该技术进行测试的结果显示,其运行稳定,效果良好。
[1]高新成.校园网多出口访问控制技术研究[J].长江大学学报:自然科学版,2010,7(2):284-286.
[2]倪晓艳.基于Windows 2000的多出口接入服务器的设计与实现[J].计算机与现代化,2006(4):66-68.
[3]张云川,王耀青,钱江红.大型校园网多ISP连接的研究与实现[J].微机发展,2005,15(4):11-13.
[4]Terr y William Ogletree.防火墙原理与实现[M].李之棠.北京:电子工业出版社,2001.
[5]李蔚泽.Red Hat Linux 9网络管理[M].北京:清华大学出版社,2003.
[6]郑光勇,尹军,朱贤友.用反向代理技术保护 Web服务器的实现[J].计算机安全,2010(5):30-32.
[7]杨永健.反向代理软件SQUID在高校图书馆中的应用[J].四川图书馆学报,2007(3):59-62.
[8]蔡昭权.策略路由和动态DNS在校园网中的应用[J].计算机工程与设计,2005,26(5):1396-1398.
[9]邱建波.高校校园网双出口环境下对DNS的智能改进[J].微计算机应用,2008,29(8):26-29.
Research and Realization of Anti-Agent in Campus Net wor k Based on Linux
SHAO Wenzhu1,ZHANG Li2
(1 Center of Co mputer Net wor k,Shihezi University,Shihezi 832000,China;2 College of Infor mation Science and Technology,Shihezi University,Shihezi 832000,China)
At present,by NAT or the agent technique in the campus net,the problem of slowness of visiting the public net has been solved;however,the problem of the slowness of resources when users visit the campus net wor k server is still serious.This paper advocates that using squid to solve the problem by means of anti-agent technique with linux as a platfor m not only saves teleco m IP addresses but also protect inner server,substantially i mproves the speed of visiting t he campus net resources.This method tur ns out to be effective after being employed.
anti-agent;proxy;web server acceleration;squid;linux
TP393.08;TP393.18
A
1007-7383(2011)03-0394-03
2011-04-07
国家科技支撑计划项目(2007BAH12B01)
邵闻珠(1972-),男,副教授,从事网络应用研究;e-mail:shao@shzu.edu.cn。