Lighttpd在Apache之前的另一个好处

我在一个网站上读到,在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,这真的值得吗?

谢谢!

  1. 我们有轻量级的静态内容,并将dynamic请求转发到同一台服务器上的Apache,但在另一个端口上侦听
  2. “转发到apache的dynamic”并不是为了性能的目的,而只是从客户端的angular度来看一台服务器,为所有服务提供服务。 但是,如果您可以避免与Apache的多余连接,这是一个很好的副作用。 更多的连接=更多的进程=更多的内存(特别是与mod_php)。 所以,没有号码,对不起。
  3. 与Apache相比,开销似乎微不足道

也就是说,你应该考虑清漆逆向代理,而不是像你的前端那样(或者在前面)。 这是非常快速和高效的。 对于cachingdynamic页面(或使用ESI的页面片段)特别有用,它有助于减less后端负载并吸收stream量峰值。

可能使用nginx(使用PHP-FCGI)作为后端而不是Apache(尽pipe这比添加Varnish前端更复杂)(nginx也可以用作前端,但不如专用反向代理漆)。 免责声明:我没有nginx的经验;)

我曾经是在相同的情况下,起诉lighttpd旁边的Apache),以减less对Apache的负载。

使用轻量级Web服务器提供静态内容更好,因为它需要的资源更less。 另外不得不提的是,PHP需要Apache以预分配模式运行,这将禁止Apache有效运行。 您可以将负载分配到两个不同的Web服务器,每个服务器处理最好的stream量。

一些实施说明:

你有三个select:

  1. 修改您的代码并在IP层上分段stream量
  2. 不要修改应用程序(http)层上的代码和细分stream量
  3. 得到其中一个networking服务器来传递请求到另一个networking服务器的实际服务

第一个更快,第二个需要更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