我正在使用 lighttpd 优化静态媒体网站。我发现一个推荐的解决方案是使用 Apache Proxy 指向 lighttpd 服务器。但是,这会占用每个请求的 Apache 线程/进程吗?
在我的设置中,我注意到所有进程都已用尽,即使它们没有执行任何操作(就 CPU 而言)。为了释放 apache 进程,我配置了 lighttpd,Munin 显示所需的进程数量显著减少。
但是,我已将其设置为直接连接到 lighty,以防止 apache 工作进程被静态媒体服务占用。我的问题是:使用 Apache Proxy 时,每个请求是否也会占用一个进程/工作进程?
答案1
通常,这样做是因为 apache 进程占用的内存与在其中运行的最大脚本一样多。因此,如果有大量连接,您将不必要地占用大量内存,从而限制了您可以处理的同时连接数。即使您要为静态文件使用单独的 apache 实例,您也会看到好处。
这与脚本阻止进程无关,而是充分利用资源。
答案2
我不这么认为。这种配置对于服务来说会有一些优势占用大量内存的 php 脚本但经过适当调整的 Apache 可以非常高效地提供静态文件。即使添加轻量级 Web 服务器也只是增加了开销。
例外情况可能是,如果你的规模足够大,以至于静态文件实际上来自完全不同的机器——那么代理前端委派请求是明智的。(尽管在那时你可能想要使用漆。