我是一名 Linux 初学者,拥有一台 Linux Ubuntu 12.04 服务器。我已经安装了 node.js 并创建了一个网络服务器脚本。这工作正常,但它以 root 用户身份运行。
我知道这不好(root 用户和网络服务器 = 不安全)。
如何以非 root 用户身份运行网络服务器脚本?有人知道一个很好的详细教程或可以给我一些建议吗?
你有两个选择:
监听 80 端口
以 root 身份运行,在端口 80 上启动您的应用程序listen()
,它们会立即降级为非 root。例如,这就是 Apache 所做的。不推荐,因为这很容易出错,还有很多其他细节(写入日志文件,在收听之前需要初始化等)。不是节点的标准做法。
监听端口 >=1024*
以非 root 身份运行,侦听 >= 1024 的端口(例如:8000 或 8080),并让其他人在端口 80 上侦听并将端口 80 的流量中继给您。其他人可以是:
负载均衡器、NAT、代理等(例如,如果您在 EC2 上运行,则可能是 EC2 负载均衡器)
另一个 http 服务器,比如 Apache httpd 或 ngnix。
有关 ngnix 示例,请参见:Node.js + Nginx - 现在怎么办?
你可以跑node hello.js