默认 EC2 实例上 Nginx 中的通配符子域

Wildcard Subdomain in Nginx on Default EC2 instance

我正在使用未注册域名的默认 EC2 实例。我正在尝试使用子域在 MEAN 堆栈应用程序中测试一些多租户功能。

基本上我可以使用默认的 AWS public 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 上永久使用。

据我所知,Amazon 不会为其 EC2 域创建通配符记录,因此 *.地址甚至都不会解析(你可以很容易地测试这个)。相反,您需要注册一个域并将其通配为您的 EC2 实例的 CNAME。

您不能使用默认的 amazonaws 主机名执行此操作,但还有另一种方法。

http://xip.io

any.subdomain.you-like.x.x.x.x.xip.io 将自动解析为 IP 地址 x.x.x.x,因此如果您将主机名中的 EC2 实例的 IP 地址替换为主机名,您就可以在这里找到所需的内容。

为了清楚起见:我不隶属于此服务。