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