Phusion Passenger上的Express.js应用程序 – 没有及时写入启动响应

我试图在运行Phusion Paggenger(apache)的服务器上运行express.js应用程序,并且看到错误“启动Web应用程序时发生错误:它没有及时写入启动响应。 请求超时后。 我读过https://github.com/phusion/passenger/wiki/Debugging-application-startup-problems,但这似乎有点模糊。 我的快速应用程序是尽可能裸骨,所以我想知道是否有人知道是否有可能会导致这一点特定的组件。 我已经能够在服务器上使用相同的设置运行一个普通的node.js应用程序。

如果您使用express-generator命令设置您的项目,您可能会看到是否将虚拟主机configuration文件的PassengerStartupFile行指向bin/www而不是app.js ,而不是显式调用app.js中的app.listen文件。 Phusion Passenger的文档没有解决ExpressJS采用的这个特定约定。 你可以在Express的4.x移动指南上阅读一些关于这个bin/www启动约定。 似乎为我工作。

看来你需要在app.js中显式调用app.listen。 具体来说,我只在生产时才这样做:

 if (app.get('env') === 'production') { app.listen(3000); } 

在app.js结尾