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