庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>FreeBSD>使用大全>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

FreeBSD连载(91):提升静态网页服务能力的综合方式

 作者:王波    日期:2005-4-16
字号选择〖 〗/ 双击滚屏 单击停止   

提升静态网页服务能力的综合方式

  由于真正的HTTP请求常常是混合了静态请求和动态页面请求,那么很难调整Apache的设置使其既能适合静 态网页请求,又能适合动态网页请求。为了提升Web服务的性能,还可以使用多个服务器,来帮助提升服务器性能。

  由于Apache服务器不能够特别高效的提供静态网页服务,那么就可以使用一些辅助手段来帮助Apache服 务器来高效的实现静态网页服务。一个有效的方法为使用代理服务器Squid,Squid具备一种加速模式,这个模式下 Squid能将所有的HTTP请求转发给内部的真正Web服务器。然而由于Squid是单进程的服务器,这样就不会因 为并发访问而产生大负载,并且它具备对静态网页的缓存功能,使得Squid不必每次都需要访问后端Web服务器。因此 使用Squid能明显减轻对静态网页频繁访问造成的负载问题。

  由于Squid不会带来很大的CPU负载,因此不必要让Squid单独运行在一台服务器上,可以让Squid 和Apache服务器同时运行在一台服务器上,这样通过对磁盘I/O产生一些额外的负载,但能有效的增加静态网页的服 务能力。

  请查看Squid的手册以得到如何设置加速模式的方法,Squid软件包含在FreeBSD的Packages Collection中。

  • 分离静态网页服务器和动态网页服务器

  由于Apache提供静态网页的服务能力不佳,那么可以将静态请求交给效率较高的服务器软件,如thttpd ,而动态请求较给Apache服务器来执行处理。这样的缺点就是其他的简易Web服务器不能提供Apache服务器一 样的丰富功能,因此虽然这样做会提升效率,但一般并不建议这样设置服务器。

  考虑到Apache服务器的设置因素,如果设置合适,Apache服务器本身就能提供高效的静态页面服务,只 是当静态页面和动态页面混合的时候,就无法决定最优设置。尤其是当Apache支持了一些特定模块的时候,这些模块将 使用大量的内存(例如一个mod_perl可能占据10M以上的内存空间),使得即使这个服务器是提供静态网页服务时 ,也要占用那么多内存,这样就使得为动态网页定制的设置完全不适合静态网页。

  因此为了解决服务器的不同情况下的优化设置不同的问题,就可以在一台计算机同时运行两个Apache服务器, 一个比较纯粹,没有支持额外的模块,只是为了和第二个服务器协作,需要支持proxy模块,用于支持静态网页,同时提 供对第二个Apache服务器的代理请求,第二个Apache服务器可以载入复杂的模块,以支持动态网页。

  两个Apache服务器可以根据不同的需要,进行不同的参数调整。第一个Apache服务器只进行静态网页服 务和代理服务,因此可以将MaxClients设置的较大,而第二个Apache服务器要提供消耗处理器能力的动态网 页服务,因此就要将MaxClients设置的较小。此时在第一个Apache服务器上设置其代理功能,虽然Apache 的代理能力比不上Squid优秀,然而这简化了服务器的种类,并能使用同一的访问控制手段。

  此时代理服务器是用于代理动态网页请求,和前面使用Squid代理静态网页请求的目的不同。但是也可以适用 Squid,在外部访问静态网页的时候,它代理访问第一个Web服务器,访问动态网页的时候,代理访问第二个Web服务 器。

  当使用这种设置方式的时候,为了使得外部客户访问第一个服务器时能自动代理到第二个服务器上,就需要在第一个 Apache上使用ProxyPass参数进行设置,将用于动态网页的CGI请求转发给第二个服务器。此时就有不同的 选择,可以使用两个计算机各自运行一个Web服务器,也可以在一台计算机上安装两个Apache服务器,第一个服务器 监听普通的80端口,而第二个服务器监听其他端口,例如3456,在第一个服务器的httpd.conf中设置ProxyPass:

ProxyPass /cgi-/bin/ :3456/cgi-bin/

  当在一个计算机上安装两个Apache服务器的时候,必须注意安装路径的问题。至少有一个服务器不能使用 Ports Collection直接安装,应该更改过路径设置编译安装。

未完,待续。。。  

上一篇:FreeBSD连载(92):基于DNS的负载均衡    下一篇:FreeBSD连载(90):单服务器性能调整  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 王波
信息来源: 网络 录入时间: 2005-4-16
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿