停止执行后应用程序未以 pm2 启动
App not starting with pm2 after stopping execution
我有一个应用程序设置为侦听端口 66。
首先,我尝试使用 sudo node myapp.js 运行 它。我能够在正确的 url (ip:66) 访问它。然后我停止了应用程序 (Ctrl+c) 并使用 pm2 启动它,sudo pm2 start app.js。状态为在线。但是,现在无法访问相同的 url。
运行 sudo pm2 logs while the app is started with pm2 gives me error EACCESS for port 66. 没有其他人运行正在使用这个应用程序,我确信我只是在使用一个控制台并在使用 pm2 启动它之前终止节点服务。
Pm2 已全局安装。服务器是 Debian stretch。 Nodejs 版本是 8.x
我以普通用户身份登录并使用 sudo 运行 应用程序。
在 linux 系统上,普通用户不允许侦听低于 1024 的端口。有几种解决方法。
您可以更改此规则以允许非根用户打开此类端口。但这是一个安全风险,不推荐。所以我不会在这个解决方案中添加 link。
您还可以侦听大于 1024 的端口,然后使用防火墙中的转发规则将端口 66 路由到您打开的端口。
https://www.systutorials.com/816/port-forwarding-using-iptables/
我(和 pm2)的首选解决方案是侦听大于 1024 的端口并使用像 nginx 这样的反向代理来路由该服务器上的应用程序 运行。
http://pm2.keymetrics.io/docs/tutorials/pm2-nginx-production-setup
我有一个应用程序设置为侦听端口 66。
首先,我尝试使用 sudo node myapp.js 运行 它。我能够在正确的 url (ip:66) 访问它。然后我停止了应用程序 (Ctrl+c) 并使用 pm2 启动它,sudo pm2 start app.js。状态为在线。但是,现在无法访问相同的 url。
运行 sudo pm2 logs while the app is started with pm2 gives me error EACCESS for port 66. 没有其他人运行正在使用这个应用程序,我确信我只是在使用一个控制台并在使用 pm2 启动它之前终止节点服务。
Pm2 已全局安装。服务器是 Debian stretch。 Nodejs 版本是 8.x
我以普通用户身份登录并使用 sudo 运行 应用程序。
在 linux 系统上,普通用户不允许侦听低于 1024 的端口。有几种解决方法。
您可以更改此规则以允许非根用户打开此类端口。但这是一个安全风险,不推荐。所以我不会在这个解决方案中添加 link。
您还可以侦听大于 1024 的端口,然后使用防火墙中的转发规则将端口 66 路由到您打开的端口。 https://www.systutorials.com/816/port-forwarding-using-iptables/
我(和 pm2)的首选解决方案是侦听大于 1024 的端口并使用像 nginx 这样的反向代理来路由该服务器上的应用程序 运行。 http://pm2.keymetrics.io/docs/tutorials/pm2-nginx-production-setup