小编Alf*_*doy的帖子

nginx可以按需启动apache吗?

我有一个用于不再使用的旧网站的“存档”服务器,但我想将它们作为我的简历/作品集的一部分保持在线。

他们需要不同的 apache 和 php 版本和设置,所以我在不同的端口上运行多个 apache,在 nginx 反向代理后面。

但是,这些网站很少有访问者。两次访问之间可能需要几天甚至几周的时间,所以我认为让所有这些 apache 实例一直运行是对内存和 CPU 的巨大浪费。

我想做的是让 nginx 按需启动相应的 apache 服务器。也许是这样的:

  1. 向 nginx 传入 http 请求。
  2. nginx 检查 apache 服务器是否在其 tcp 端口上响应。
  3. 如果 apache 没有响应:运行一些脚本来启动 apache。
  4. 当 apache 开始响应时,将 http 请求反向代理到 apache。

我希望 apache 守护进程以 PHP 作为模块加载。我希望访问者浏览网站时体验既快又好,但是,第一次请求的加载时间几秒钟是没有问题的。有些站点是 AJAX 密集型的,因此不能为每个请求加载 apache。

我没有找到任何明显的方法来做到这一点。有没有人对类似的设置有任何想法或经验?是否有其他反向代理软件(除了 nginx)可以做到这一点?

(当然,我还需要一种在不活动时关闭 apache 的方法,但这对于 cron 作业来说非常简单,只需检查 apache 的 access.log 中是否发生了某些事情。)

顺便说一句.. 服务器正在运行 Debian Lenny。

编辑/我的解决方案:

我通过使用https://github.com/nodejitsu/node-http-proxy为 node.js编写脚本解决了这个问题。

// I'm using http-proxy to make the proxying:
var server = httpProxy.createServer(function …
Run Code Online (Sandbox Code Playgroud)

debian nginx reverse-proxy apache-2.2

4
推荐指数
1
解决办法
899
查看次数

标签 统计

apache-2.2 ×1

debian ×1

nginx ×1

reverse-proxy ×1