根据域名将传入请求路由到特定服务器

时间:2009-05-18 16:21:32

标签: routing dns

现在我有防火墙(安装了iptables,Apache,Squid,DNS)和防火墙后面的应用服务器。

防火墙端口443(HTTPS)上的传入流量被重定向到应用程序。服务器由iptables。基本上,防火墙上的Apache和其他应用程序都没有看到HTTPS流量。我直接从防火墙提供了一些Web内容 - 它通过thrugh 80到达Apache。

现在我想添加一些额外的服务器并在其上安装其他Web服务。

如何配置防火墙计算机将基于域名的传入流量路由到所需的主机?

常见做法,技术和工具有哪些?

在当前设置中,我拥有的所有域都将转到同一服务器,无论其名称是什么,如果它们来自端口443.所以我想要例如foo.com转到server1和bar.com由server2服务;无论港口如何。

非常感谢!

3 个答案:

答案 0 :(得分:4)

您将需要更多IP地址。

HTTPs的问题在于,在客户端发送包含所请求域名的Host:头之前,会发送证书(包含域名)。

如果你有https://foo.comhttps://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

就这么简单。