gpt4 book ai didi

node.js - 如何以非 root 用户身份运行 node.js?

转载 作者:IT老高 更新时间:2023-10-28 22:59:34 24 4
gpt4 key购买 nike

我正在运行一个 node.js 服务器,它将为端口 80 上的请求提供服务。显然,这需要应用程序以 root 身份运行(在 Linux 上)。

以这篇文章 (http://syskall.com/dont-run-node-dot-js-as-root) 为例,很明显有一些简单的方法可以让 node 以非 root 用户身份运行,但我想知道是否有人对建议的不同方法:

  1. 代码:在80端口监听建立后,使用setuid()从root下拉到非特权用户。

  2. 使用某种代理服务器将请求重定向到 >1024 端口(因此不需要 Node 以 root 身份运行)

  3. 使用 IP 表转发到另一个端口(同上 Node 不会以 root 身份运行)

谢谢

最佳答案

选项 1 要求您以 root 身份启动 Node 服务器。不理想。

选项 2 会为每个处理的请求增加开销,并向您的堆栈添加另一个故障点。

选项 3 是最简单、最有效的方法。

要实现选项 3,请将以下内容添加到您的系统初始化脚本中。 (/etc/rc.d/rc.local 在基于 RedHat 的系统上,如 AWS)。

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

这会将请求从端口 80 重定向到端口 3000。

关于node.js - 如何以非 root 用户身份运行 node.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17467696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com