以下是我的情况:我按照本教程在Amazon EC2实例上使用Bitnami MEAN-Image托管我的网站 - https://scotch.io/tutorials/deploying-a-mean-app-to-amazon-ec2-part-1。然后,我在我的EC2实例上购买了一个域名并设置了我的弹性IP地址,并且我已经链接了域和实例。如果我在端口3000上运行我的应用程序(npm start),我可以通过访问mydomain.com:3000看到该应用程序,但是如果我在端口80上运行我的应用程序,或者如果我根本不运行我的应用程序那么我当我去mydomain.com或mydomain.com:80时,我被带到默认的Bitnami MEAN页面。如何在不指定端口的情况下让我的应用程序出现在mydomain.com上?
编辑问这个;即使不使用我购买的域名,是否可以将我的EC2实例公开dns默认为我的应用程序的主页而不是默认为Bitnami MEAN主页?
答案 0 :(得分:1)
如果您已安装Bitnami MEAN堆栈,您将在端口80上运行Apache服务器,它将提供位于/opt/bitnami/apache2/htdocs
的默认页面。
如果您希望Apache默认为您的应用程序提供服务,您可以按照以下步骤执行此操作:
/opt/bitnami/apache2/conf/bitnami/bitnami.conf
并在默认的虚拟主机配置中添加以下行。它应该是这样的:< VirtualHost 默认:80>
...
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
...
< /虚拟主机>
现在,您应该可以通过http://your-ip/
答案 1 :(得分:0)
您必须将端口80重定向到3000,因此无论何时进入域或IP,它都会到达端口80.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
使用此功能,这应该将端口80调用重定向到3000