Tomcat 从单个Azure VM运行具有不同域的2个网站

Tomcat 从单个Azure VM运行具有不同域的2个网站,tomcat,azure,dns,multiple-domains,Tomcat,Azure,Dns,Multiple Domains,我有一个Windows Azure VM,它位于Azure提供的域myserver.cloudapp.net 在这个虚拟机上,我在一个Tomcat实例上运行两个独立的Web应用程序,bob和fred。我已经对其进行了设置,以便分别在myserver.cloudapp.net/bob和myserver.cloudapp.net/fred上访问它们 但是,我不希望用户知道这些站点在同一服务器上的不同上下文下运行。我注册了两个域名,www.bob.com和www.fred.com,我想将它们用于每个单

我有一个Windows Azure VM,它位于Azure提供的域myserver.cloudapp.net

在这个虚拟机上,我在一个Tomcat实例上运行两个独立的Web应用程序,bobfred。我已经对其进行了设置,以便分别在myserver.cloudapp.net/bobmyserver.cloudapp.net/fred上访问它们

但是,我不希望用户知道这些站点在同一服务器上的不同上下文下运行。我注册了两个域名,www.bob.comwww.fred.com,我想将它们用于每个单独的站点

这就是我要解决的问题——我可以找到大量关于如何将单个自定义域映射到单个Azure VM域的资源,但谷歌可能无法找到任何关于如何将一个或多个自定义域映射到单个Azure域下特定上下文的资源

我对Web服务器和DNS配置等非常陌生,所以我甚至不太确定应该在什么级别上进行这种映射。也许这是我可以在虚拟机本身上进行重写的事情,或者在我的自定义域的DNS设置中进行重写更好。我基本上是在学习的过程中学习这些东西,所以任何指向这些东西的提示、技巧、提示或教程链接都将非常感谢,这样我就可以进一步学习


当然,我可以采取“愚蠢”的方式,为两个Azure虚拟机付费,但这些网站运行起来不需要太多的咕噜声,这就像承认失败一样;-)

好吧,在玩了几个小时之后,我就开始工作了

我的解决方案是通过在DNS设置中将www.bob.comwww.fred.com的CNAME配置为myserver.cloudapp.net将我的两个自定义域指向Azure VM域

然后,在我的Azure VM上,我使用IIS URL重写将http请求路由到本地Tomcat实例上的适当上下文-我可以通过查看请求头中的主机名并在此基础上选择正确的内部URL(使用正确的应用上下文/bob/fred)来完成此操作

对于我的应用程序,还有一大堆其他的怪癖,我必须努力解决——在没有IIS经验的情况下从头开始设置这些怪癖是不可能的——但是如果其他人有这个问题,我建议首先检查包含足够信息的应用程序,以获得类似于我所使用的解决方案有

令人惊讶的是,当你已经有了一个解决方案,并且确切地知道用谷歌搜索什么时,你总能找到最好的方法:-)