我有一个Windows Azure VM,位于Azure提供的域 myserver.cloudapp.net
在这台虚拟机上,我在一个Tomcat实例上运行了两个单独的webapp, bob 和 fred 。我已将其设置为可以分别在 myserver.cloudapp.net/bob 和 myserver.cloudapp.net/fred 上访问。
但是,我不希望用户意识到这些站点在同一服务器上的不同上下文中运行。我有两个域名注册, www.bob.com 和 www.fred.com ,我想用于每个网站。
这就是我要解决的问题 - 我可以找到很多关于如何将单个自定义域映射到单个Azure VM域的资源,但谷歌因为我可能找不到任何有关如何映射一个或更多自定义域到单个Azure域下的特定上下文。
我对网络服务器和DNS配置等都很陌生,所以我甚至不太确定我应该在什么级别上进行这种映射。也许这是我可以通过重写VM本身来做的事情,或者也许最好在我的自定义域的DNS设置中进行。我基本上都在学习这些东西,所以任何指针,技巧,提示或教程的链接,所以我可以进一步了解这将是非常感激。
当然,我可以采用'愚蠢'的方式支付两个Azure虚拟机,但这些网站不需要太多咕噜声就可以运行,只是感觉就像承认失败一样; - )
答案 0 :(得分:4)
好的,所以经过几个小时的游戏,我就可以开始工作了。
我的解决方案是通过在 www.bob.com 和 www.fred.com 的每个DNS设置中配置CNAME,将我的自定义域指向Azure VM域要 myserver.cloudapp.net 。
然后,在我的Azure VM上,我使用IIS URL重写将http请求路由到本地Tomcat实例上的相应上下文 - 我可以通过查看请求标头中的主机名并选择正确的内部URL来实现此目的(正确的应用环境 / bob 或 / fred )基于此。
我的应用程序中有一大堆特定于我必须要解决的问题 - 从头开始设置这一切,以前没有IIS的经验也没有在公园散步 - 但如果有其他人有这个问题我会建议先查看this very useful article,其中包含足够的信息,以便采用类似于我所使用的解决方案。
令人惊讶的是,当你已经有了解决方案时,你总能找到最好的方法,并确切地知道谷歌的用途: - )