扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
由于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/ http://localhost:3456/cgi-bin/ |
当在一个计算机上安装两个Apache服务器的时候,必须注意安装路径的问题。至少有一个服务器不能使用 Ports Collection直接安装,应该更改过路径设置编译安装。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者