我在一个网站上读到,在Apache前面安装Lighttpd的另一个好处是subprocess的数量更less。 Lighttpd将处理保持活动和客户端请求,同时由于Lighttpd和Apache之间的低延迟通信,Apache的subprocess可以更快地为dynamic页面提供服务。 我试图find链接,但我很难。
鉴于我已经有我的静态内容(img,vid,css,js,html等)的专用Lighttpd服务器和另一个专用于我的dynamic页面(Apache)的Apache服务器,我想实现这个技术,如果它真的有一些性能增益。
1)有没有人为了与上面解释的相同的目的把Lighttpd放在Apache前面?
2)在这方面是否真的有性能提升? 多less?
3)Lighttpd处理请求到Apache的开销是多less,这真的值得吗?
谢谢!
也就是说,你应该考虑清漆逆向代理,而不是像你的前端那样(或者在前面)。 这是非常快速和高效的。 对于cachingdynamic页面(或使用ESI的页面片段)特别有用,它有助于减less后端负载并吸收stream量峰值。
可能使用nginx(使用PHP-FCGI)作为后端而不是Apache(尽pipe这比添加Varnish前端更复杂)(nginx也可以用作前端,但不如专用反向代理漆)。 免责声明:我没有nginx的经验;)
我曾经是在相同的情况下,起诉lighttpd旁边的Apache),以减less对Apache的负载。
使用轻量级Web服务器提供静态内容更好,因为它需要的资源更less。 另外不得不提的是,PHP需要Apache以预分配模式运行,这将禁止Apache有效运行。 您可以将负载分配到两个不同的Web服务器,每个服务器处理最好的stream量。
一些实施说明:
你有三个select:
第一个更快,第二个需要更less的configuration,第三个就像一个mule子。
如果我是你,我不会考虑第三种select,因为它带有一个configuration恶梦,而且,如果在第一个Web服务器上错误地configuration了一些东西,什么都不会起作用,而且很难找出问题所在。
在过去,我需要紧急的解决scheme,所以我使用了选项2,并使用一个名为pound的反向代理来分割静态/dynamic内容上的请求,并将负载分配给两个不同的Web服务器。
尽pipe它起作用,但它需要主动监视http内容,从而使性能受到影响(运行一个额外的守护进程)。
使用选项2,您可以获得更好的性能,对静态内容使用额外的IP(static.domain.org),并让客户端引用此static.domain.org的内容。 它仍然需要一个反向代理,但代理不必检查任何请求中的主机:头,所以它会更快。
这里有一个英镑的configuration片段供您参考:
ListenHTTP Address 195.175.71.17 Port 80 Client 30 RewriteLocation 2 Service HeadRequire "^[Hh]ost:\s*www.nasa.gov$" URL "^/static/content" BackEnd Address 127.0.0.1 Port 81 TimeOut 300 End End Service HeadRequire "^[Hh]ost:\s*www.nasa.gov$" BackEnd Address 127.0.0.1 Port 80 TimeOut 300 End End ListenHTTP