我正在使用 AWS lightsail。我将我的 git 存储库克隆到我的 htdocs 并在我的网络 ipv4 防火墙上打开端口 3000。我试图做的是使用我的 aws 静态 IP 加载我的节点站点。当我指定特定端口(如:98.222.124.4:3000)时,它目前有效,但我希望它在不指定端口的情况下加载站点,因此我按照此处的步骤操作https://docs.bitnami.com/ibm/infrastructure/nodejs/administration/create-custom-application-nodejs/ 在“创建自定义虚拟主机”下,但指定的方法不起作用。我仍然需要指定端口才能加载站点。我所做的基本上是编辑 documentRoot 和目录路径到我的存储库位置,然后重新启动 apache,但这不允许我在没有端口的情况下访问该站点。我哪里做错了。如何在不指定 URL 中的端口的情况下加载站点?
答案1
我花了一分钟才找到这个解决方案,但唯一有效的方法是这样的:
安装 iptables 后首先尝试以下操作:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
您所做的基本上是将所有端口 80 流量转发到端口 3000。然后检查网站是否在未在 URL 中指定端口的情况下加载。如果有效,请转到步骤 2。
第2步:
/etc/rc.local
使用 vim 或其他编辑器 打开文件并添加iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
到文件中。注意sudo
未包括在内,因为该文件已以 root 身份运行。我们正在实施步骤 2,因为我们希望在机器启动时重定向端口。