我有一台 azure 虚拟机,在三个不同的端口上运行三个自托管应用程序(未托管在 IIS 中)。
我可以通过以下网址访问它们:
my-server.cloudapp.azure.com:8080
my-server.cloudapp.azure.com:8081
my-server.cloudapp.azure.com:8082
我已经购买了一个域名 ( my-server.company.com
) 并想创建三个指向每个应用程序的子域
application-1.my-server.company.com
application-2.my-server.company.com
application-3.my-server.company.com
我的第一个想法是在虚拟机上安装 IIS 并使用本文中提到的默认网站上的 URL Rewrite 设置反向代理(http://weblogs.asp.net/owscott/creating-a-reverse-proxy-with -url-rewrite-for-iis)。
因此,在这种情况下,我将为每个要指向的子域设置 CNAME 记录my-server.cloudapp.azure.com:80
,然后配置反向代理以根据主机标头转发到不同的端口 ( 8080
, 8081
, 8082
)。
这是可能的/最好的方法吗?
第二个问题是一旦我开始工作,我该如何添加 ssl?
每个子域是否需要自己的 ssl 证书,在这种情况下,如何使用上述设置(没有 iis 网站将每个证书绑定到)。或者我可以只使用 my-server.company.com 的证书,然后在反向代理上卸载吗?
我创建了 CNAME dns 记录如下:
CNAME | application-1 | my-server.cloudapp.azure.com
CNAME | application-2 | my-server.cloudapp.azure.com
CNAME | application-2 | my-server.cloudapp.azure.com
Run Code Online (Sandbox Code Playgroud)
然后在 azure vm 上,我使用以下 Caddyfile运行Caddy(具有自动 HTTPS 的 HTTP/2 Web 服务器): …