在部署我的 Express 应用后,可以正常用 xxxIP:4000 去访问我的 Express 应用,所以就想能不能直接 xxxIP 访问,毕竟这个搞好之后,就可以买域名啦!
我的做法是在 .env 上加上
PORT=80
Express 的 www 文件这里就会应用上我自己配置的端口了:
const port = normalizePort(process.env.PORT || '4000')
app.set('port', port)
但是运行,就报错了:Port 80 requires elevated privileges
搜了一圈,找到了这个答案:https://www.edureka.co/community/23346/unable-to-start-express-server-on-aws-instance
只需要两个命令:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 4000
sudo iptables -t nat -L
这里的意思是将所有 80 端口的请求都映射到 4000 端口,这样也不需要在 .env 上做任何配置了。只要你访问 XXXIp (默认端口是80)其实就在访问 XXXIp:4000,成功!
网友评论