NodeJS + Cpanel Error : Incomplete response received from application (Node js, Express, Mongoose)

NodeJS + Cpanel Error : Incomplete response received from application (Node js, Express, Mongoose)

我使用 express & mongoose 创建了一个 Node js 应用程序,并使用 cpanel 将其部署到 Web 服务器。我使用他们的功能 "Setup Node JS" 将其部署到我的子域。在前 6-7 天,它 运行 很好,所有功能和特性 运行 都正常,没有任何问题,也没有发生任何不良情况。但是突然,打开页面时出现错误说内部服务器错误500。

我在这里搜索了一个解决方案,是的,我找到了一些解决方案来添加这行代码

RewriteCond %{ENV:REDIRECT_STATUS} 200

到我的 .htaccess 文件。它有效(我仍然不明白为什么一开始它在没有添加这个的情况下也有效)并且我可以再次恢复我的页面。好吧,有点……不完全是。

不过...

每次我在我的程序中使用我的登录或注册功能时(基本上当尝试 运行 mongoose 方法 例如 User.find({}) 时)它会挂起最多 2-3 分钟,直到页面显示错误:

在页面上:从应用程序收到的响应不完整

在控制台上:502 错误网关

我在这里搜索过,但还没有找到任何东西,只有这个question有类似的问题,但还没有明确回答我需要打开什么端口?我在哪里可以找到它。

我对编程完全是菜鸟,才刚刚开始,那么我该如何解决这个错误?

在这一点上,我不太确定要向你们展示什么以使其更易于理解,但我将在下面包含我的 .htaccess 文件。此外,我在 heroku 上对其进行了测试,它 运行 完全正常。但是需要在 cpanel shared hosting 上运行,稍微复杂一些。

感谢您的帮助。

我的 .htaccess 文件包含:

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php56” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php56 .php .php5 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/intidina/psikotes"
PassengerBaseURI "/"
PassengerNodejs "/home/intidina/nodevenv/psikotes/12/bin/node"
PassengerAppType node
PassengerStartupFile index.js
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END
# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION BEGIN
<IfModule Litespeed>
</IfModule>
# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION END

RewriteCond %{ENV:REDIRECT_STATUS} 200

首先,您不能在共享主机上 运行 MongoDB。 Please refer to this thread..

这与您的以下陈述一致:

Additionally, I tested it on heroku and it runs perfectly normal. But it needs to be served on cpanel shared hosting and it's a little bit more complicated.

如果共享主机部署是必须的,那么一个选项是使用外部 MongoDB 实例。幸运的是,您在 Heroku 中部署时有一个。

问题中没有解释,所以我假设 Heroku 应用程序使用 mLab

  1. 转到您的 Heroku 仪表板 -> 您的应用,https://dashboard.heroku.com/apps/your_app
  2. 如果您安装了 mLab MongoDB 附加组件,请转到其设置。它将重定向到 https://www.mlab.com/databases/heroku_yourdbname
  3. 在设置菜单中,您会看到使用 MongoDB URI 进行连接的选项,然后它会显示类似 mongodb://<dbuser>:<dbpassword>@something.mlab.com:11331/heroku_yourdbname 的内容。分别更改和更改为您的用户名和密码。然后确保您的主机允许端口 11331。

希望对您有所帮助。