node.js - 状态码 503 Service Unavailable 可能是什么原因

标签 node.js ubuntu server pm2 http-status-code-503

我正在运行具有 2 个服务的 Ubuntu 服务器(DigitalOcean Droplet)。 React(创建 React 应用程序)PORT 3000 中的前端 和 Node.js PORT 8765 中的后端/API 使用 PM2(pm2.keymetrics.io)。

Screenshot of PM2 running 2 services

端口已打开(3000 和 8765)。我查过了。

lsof command showing the open ports

问题:当前端应用(在我的浏览器中)尝试访问后端时,它会返回“503 服务不可用”状态代码。

Screeshot of the browser developer tools showing 503

问题:可能是什么原因?您可以建议任何尝试步骤吗?

注意:它在过去几周内运行良好。 (我曾经从 Bitbucket 中提取新的更改)但是今天我遇到了这个问题。

到目前为止我尝试了什么

  • 重新启动服务器。同样的错误。
  • 将后端端口从 9000 更改为 8765
  • 在新的 AWS EC2 实例中运行相同的代码。那里工作正常。
  • 强制监听 IPv4(基于@adel 评论) Screenshot using IPv4

最佳答案

我多次调用后端(使用前端)并使用 Ubuntu 的“top”实用程序观察正在运行的进程。请参见下面的屏幕截图。

enter image description here

我注意到后端 node.js 应用程序进程的进程 ID 是 12225。即使返回“503 服务不可用”,也会重复调用此进程。

事实证明,后端应用程序代码以编程方式返回此状态代码(无论何时发生错误,都使用 try-catch block )

try{
 ...
}
catch (e) {
 res.send(503, ...)
}

我为此苦苦挣扎了几天。希望这会对某人有所帮助。

(发现新问题是为什么特定错误只发生在特定服务器上。它在 EC2 实例上运行良好。我认为这是一个不同的问题。)

关于node.js - 状态码 503 Service Unavailable 可能是什么原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71816924/

相关文章:

c - Ubuntu 中的 OpenGL(C 语言)说事情未声明

ubuntu - 更新到 PHP7 并使用新的 php.ini 文件创建新文件夹后如何获取旧的 php.ini 设置

node.js - express.static 处理根 url 请求

javascript - Accounts.onCreatedUser 的奇怪错误

mysql - Ubuntu:我无法正常运行 mysql 甚至无法重新安装它

mysql - 无法使用内置模型,即 "user",错误 : no response from server

nginx - 调用超时(错误 1006) - bigbluebutton

node.js - bunyan和winston的优缺点是什么?

node.js - 如果我导入没有 `ERR_MODULE_NOT_FOUND` 扩展名的文件,ExpressJs 将返回错误 `js`

php - 错误 :error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure