【发布时间】:2019-12-28 20:39:50
【问题描述】:
我有一个快递,我想在 80 端口上运行。 --> app.listen(80);
我正在使用PM2 来管理应用程序(重启、停止、监控等)。我有一个部署 shell 脚本,其最后一个命令是 PM2 restart index。从控制台输出中,我没有看到任何错误,并且PM2 报告它成功完成了命令。然而,当我到达my.ec2.ip.address:80 时,该网站还没有启动。此外,如果我在我的服务器项目目录中运行node index.js,我会得到一个Error: listen EACCES 0.0.0.0:80。这对我来说很有意义,因为端口 80 低于 1024,因此是特权端口。 sudo node index.js 将允许启动工作。
我是 unix、服务器、权限和部署的新手,因此除了解决方案之外,我将不胜感激解释导致我的问题的基本概念。例如..简单地以超级用户身份运行我的节点应用程序是不是很糟糕?运行PM2(因此可能将节点作为..?)root/超级用户运行是一种好习惯吗?命令sudo PM2 restart index 导致sudo: pm2: command not found。为什么在运行sudo PM2 时找不到PM2.. 如果PM2 在我的路径中?
但最终,当使用PM2 时,如何确保我的服务器在端口 80 上运行?没找到。
【问题讨论】:
标签: node.js web-services amazon-ec2 port pm2