【发布时间】:2016-04-13 14:22:17
【问题描述】:
我已经购买了一个godaddy 域和具有弹性IP 的AWS EC2 实例。在 godaddy 我创建了以下条目
指向弹性 ip 的名称条目 (mydomain.com) 以及指向相同弹性 ip 的 C 名条目 (app2.mydomain.com)
在亚马逊 EC2 实例中,我正在运行两个应用程序 app1 - 在 localhost:3000 上运行 app2 - 在 localhost:4000 上运行
现在,我正在尝试实现以下目标 mydomain.com 应该指向在 localhost:3000 上运行的 app1 app2.mydomain.com 应该指向在 localhost:4000 上运行的 app2
我已经在 EC2 上安装了 apache2,并按照以下链接配置反向代理 link1
我在 apache2/sites-available 下创建了 myproxy.conf,如下所示
<VirtualHost mydomain.com:80>
ServerName mydomain.com
ProxyPreserveHost On
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
<VirtualHost app2.mydomain.com:80>
ServerName app2.mydomain.com
ProxyPreserveHost On
ProxyPass / http://localhost:4000/
ProxyPassReverse / http://localhost:4000/
</VirtualHost>
但我无法让它工作。但是当我如下更改conf时
<VirtualHost *:80>
ServerName app2.mydomain.com
ServerAdmin admin@mydomain.com
ProxyPreserveHost On
ProxyPass / http://localhost:4000/
ProxyPassReverse / http://localhost:4000/
</VirtualHost>
mydoamin.com 和 app2.mydomain.com 都启动相同的 app2 应用程序。
我无法弄清楚我错过了什么。
编辑
发布此消息后不久,我尝试了一些似乎可行的方法。我添加了 *.80 而不是 app2.mydomain.com
<VirtualHost *:80>
ServerName app2.mydomain.com
ServerAdmin admin@mydomain.com
ProxyPreserveHost On
ProxyPass / http://localhost:4000/
ProxyPassReverse / http://localhost:4000/
</VirtualHost>
<VirtualHost *:80>
ServerName mydomain.com
ServerAdmin admin@mydomain.com
ProxyPreserveHost On
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
【问题讨论】:
标签: amazon-web-services apache2 reverse-proxy