我正在运行使用create-react-app
创建的节点应用程序。我想使其在端口80
上运行,所以我添加了一个包含内容的.env
文件
PORT=80
运行npm start
时,我得到
? Admin permissions are required to run a server on a port below 1024.
但是当我运行sudo npm start
时,该应用程序将在端口3000
上启动。
使用.env
运行时,为什么我的sudo
文件会被忽略,该如何解决?
编辑:该问题与运行sudo
时如何保持当前的环境变量无关。这个问题与.env
的行为有关,以及与sudo
一起运行时为什么它不起作用。
有趣的是,当我使用su时,例如。
$ su
# npm start
它在端口80上运行。
要完全清楚,我想知道如何在端口80
上运行我的应用程序而无需在命令sudo PORT=80 npm start
中传递端口。
我相信这是.env
的重点,因此是个问题。
答案 0 :(得分:0)
我认为没有root用户权限,您不能在端口80上运行服务器,但是我认为您可以将端口80的连接重定向到其他端口。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000