我正在设置我的第一个Node.js
服务器上的cloud Linux node
我对以下细节还很陌生Linux admin
。 (顺便说一句,我并没有尝试同时使用 Apache。)
一切都安装正确,但我发现除非我使用root login
,我无法收听port 80
与节点。但是,出于安全原因,我宁愿不以 root 身份运行它。
最佳实践是什么:
- 为节点设置良好的权限/用户以使其安全/沙箱化?
- 允许在这些限制内使用端口 80。
- 启动节点并自动运行。
- 处理发送到控制台的日志信息。
- 任何其他一般维护和安全问题。
我应该将端口 80 流量转发到不同的侦听端口吗?
Thanks
Port 80
我在云实例上执行的操作是使用以下命令将端口 80 重定向到端口 3000:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
然后我在端口 3000 上启动 Node.js。对端口 80 的请求将映射到端口 3000。
您还应该编辑您的/etc/rc.local
文件并添加该行减去sudo
。这将在机器启动时添加重定向。你不需要sudo
in /etc/rc.local
因为那里的命令运行为root
当系统启动时。
Logs
Use the forever https://npmjs.org/package/forever用于启动 Node.js 的模块。它将确保它在崩溃时重新启动,并将控制台日志重定向到文件。
启动时启动
将 Node.js 启动脚本添加到您为端口重定向编辑的文件中,/etc/rc.local
。这将在系统启动时运行 Node.js 启动脚本。
Digital Ocean 和其他 VPS
这不仅适用于 Linode,还适用于 Digital Ocean、AWS EC2 和其他 VPS 提供商。但是,在基于 RedHat 的系统上/etc/rc.local
is /ect/rc.d/local
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)