情况:
- 我有一台具有单个公共 IP 地址的 Windows 2008 服务器。
- 我有多个带有通配符 A 记录的域,它们指向单个 IP 地址。
- 我需要每个域名由不同的网站托管。(即网站 domain1site 托管 www.domain1.com)
- 我需要 domain1.com 像 www.domain1.com 一样运行
- 我需要每个站点能够有多个子域名(即 www.domain1.com、abc.domain1.com、xyz.domain1.com)
- 尚不相关,我计划通过托管在同一站点的不同应用程序来处理每个子域(即 domain1site 中的应用程序 /xyz)
但是我发现 IIS7 不支持创建具有通配符主机名绑定的网站,并且设置没有任何子域(即 domain1.com)的网站不起作用,即使对于 www.domain1.com 也是如此。
有没有简单的解决方案?是否有任何 IIS 扩展,例如应用程序请求路由提供这样的能力吗?
编辑: 该服务器托管在 Amazon EC2 上,并关联一个弹性 IP(不能超过一个)。
编辑2: 看起来一个选项是使用多个具有多个公共地址的 Amazon Elastic Load Balancer 并将它们指向同一台机器(只能使用 API 或控制台完成,而不能使用网站)。当我们拥有多台服务器时,这可能会在将来有用,但现在,真的有必要吗?
怎么样nginx?有人知道 Windows 二进制文件是否像 Linux 版本一样稳定和快速吗?如果是,是否可以将 Nginx 配置为使用以下方式托管在同一台计算机上的不同网站的反向代理:不同的端口和空的主机名绑定对于每个站点?
答案1
如果 IIS 无法做到这一点,那么我建议在网关处使用更灵活的解决方案,使用 Microsoft TMG(又名 ISA)等应用层防火墙,这将允许您在 IIS 中拥有任意数量的 IP,并且对于防火墙上单个公共 IP 上的每个请求,它可以查看主机标头并将其路由到任何内部 IP 以克服 IIS 限制。可能还有其他防火墙和反向代理也可以做到这一点,我只是不熟悉它们。