Aws EC2 中的端口转发

Port forward in Aws EC2

Am 运行 aws ec2 实例上的 nodejs /expressjs。我所有的端口都正常工作,我可以从我当地的邮递员那里访问端口 3000!但是,在本地开发中,我使用 ngrok 将 3000 转发到其独特的 URL.

但是,在 ec2 场景中,我只能使用 url.com:3000/api 访问 api 端点,但是如何仅使用 public dns例如 - awsec2.com/api 而不是使用 awsec2.com:3000/api ?如何将任何内容重定向或转发到端口 3000

我不知道从哪里开始,所以还没有尝试过:

Jist:

How to convert ec2 instance to directly listen 3000,

so that i can use "awsec2.com/api" instead of "awsec2.com:3000/api"

http://awsec2.com/api 等同于 http://awsec2.com:80/api

https://awsec2.com/api 等同于 https://awsec2.com:443/api

因此,您只需监听端口 80 和 443 并将其转发到 3000。

转发80到3000

sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000