我正在使用未注册域名的默认EC2实例。我正在尝试使用子域在MEAN堆栈应用程序中测试一些多租户功能。
基本上我可以使用默认的AWS公共DNS ex。
通过浏览器访问该站点http://ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com
这一切都很好,很好用。
问题是我想启用访问该域的子域的功能。例如,我希望能够点击:
http://client1.ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com
http://client2.ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com
etc.
我无法弄清楚如何使用nginx来做到这一点。这是我当前的nginx默认文件:
server {
listen 80;
server_name *.ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
但是,当我导航到任何子域时,我收到错误消息,说网页不可用。
如果我在没有子域的情况下访问它,页面加载就好了。
关于如何让它发挥作用的任何想法?
感谢任何帮助!
编辑:你会注意到我已经创建了一个代理传递,因为我的节点服务器在端口8080上永远运行。
答案 0 :(得分:1)
您无法使用默认的amazonaws主机名执行此操作,但还有另一种方法。
请参阅http://xip.io。
any.subdomain.you-like.x.x.x.x.xip.io
将自动解析为IP地址x.x.x.x
,因此,如果您在主机名中替换EC2实例的IP地址,则可以获得所需内容。
为清楚起见:我与此服务无关。
答案 1 :(得分:0)
据我所知,亚马逊没有为他们的EC2域创建通配符记录,所以*。地址甚至无法解决(您可以轻松测试)。您需要注册一个域并将其作为CID通配给您的EC2实例。