现在我有防火墙(iptables,Apache,Squid,DNS安装)和防火墙后面的应用服务器 .
防火墙的端口443(HTTPS)上的传入流量将重定向到应用程序 . 服务器由iptables . 基本上,防火墙上的Apache和其他应用程序都没有看到HTTPS流量 . 我直接从防火墙提供了一些Web内容 - 它通过thrugh 80到达Apache .
现在我想添加一些额外的服务器并在其上安装其他Web服务 .
如何配置防火墙计算机将基于域名的传入流量路由到所需的主机?
What are the common practices, technologies, and tools?
在当前设置中,我拥有的所有域都将转到同一服务器,无论其名称是什么,如果它们来自端口443.所以我想要例如foo.com转到server1和bar.com由server2服务;不管港口 .
非常感谢你!
3 回答
您将需要更多IP地址 .
HTTPs的问题在于,在客户端可以发送带有所请求域名的Host:头之前,会发送证书(包含域名) .
如果您有https://foo.com和https://bar.com,并且foo.com和bar.com位于同一IP上,那么浏览到bar.com将获得foo.com证书并因证书验证错误而失败 .
在防火墙上有多个IP地址后,可以直接将每个IP地址路由到不同的服务器 .
我最近才开始研究同样的事情 . 使用mod_proxy将Apache设置为其他服务器的反向代理是我见过的更好的选择之一 . 我很好奇其他人会想出什么 .
正如pjc50所提到的,这不适用于HTTPS上的多个域 .
您在DNS服务器上使用SRV记录 .
例如:
SUBDOMAIN TTL数据(优先级先)
server1.domain.com:3600:10 10 1337 domain.com
这会将域server1.domain.com上的所有传入流量映射到domain.com上的端口1337
就这么简单 .