请求正在使我的应用程序服务器,但不是到node.js – 为什么?

我在StackOverflow的这个问题中详细说明了一些随机请求是不是从客户端到我的Node.js应用服务器,导致网关超时。 总而言之,相同的请求是随机的,甚至不足以在我的第一个expression中间件产品中触发console.log()。

但是,我需要缩小这个问题的范围,以便找出哪里有stream量丢失,并build议我在我的应用服务器上尝试一个数据包嗅探器。 这是我的设置:

  • 2x负载均衡器(m1.larges)
  • 2x node.js服务器(也是m1.large)

以下是有趣的/不常见的:node.js服务器以Apache服务器启动,并且继续为我的域(streamified.me)提供PHP文件。 但是,我在应用程序服务器上使用了一些小小的httpd.conf魔术,以便对api.streamified.me的请求通过端口8888路由到node.js服务器:

RewriteCond %{HTTP_HOST} ^api.streamified.me RewriteRule ^(.*) http://localhost:8888$1 [P] 

所以,请求到达负载平衡器=>进入一个应用服务器=>如果打算用于API =>被路由到端口8888由node.js处理

所以,在同一个httpd.conf文件中,我打开了RewriteLogLevel 5,然后在本地主机上创build了一个简单的PHP + CURL脚本,用随机的URL打开我的api.streamified.me(这应该会导致node.js触发一个简单的“未find”响应),直到导致网关超时。 在这里,你可以看到它已经发生了 – 重写日志显示请求被应用服务器肯定接收并转发到端口8888 …但是它从来没有被node.js收到(或者至less第一行中间件的第一行代码从来没有得到它)

图片链接: http : //i.stack.imgur.com/3OQxS.png