网络 – 如何按域分隔流量?

背景

我目前在LAN上运行多个低功耗服务器.他们都运行不同的服务,但其中一些是相似的.我还拥有3个域,并为这些域提供了许多子域.

那么,你的问题是什么?

好吧,正如我之前所说的,我的一些服务真的很相似,并且运行在同一个端口上(我有一个Owncloud服务器,我的网站托管在另一个上).这意味着如果我想将owncloud.mydomain.com转到我的Owncloud服务器,并且www.mydoamain.com转到我的网络服务器,我有一点问题.这两个子域都只是去我家,服务使用相同的端口.我无法真正区分每个子域的流量.

编辑:它还需要能够指导许多类型的流量,如SSH,HTTPS和FTP

可能的解决方案

我只是在不同的端口上运行不同的服务,但不是最佳的.这意味着看起来很奇怪,人们将更难以使用我的任何服务,而这通常是我不喜欢的事情.

我在同一台服务器上考虑过类似的服务,但它们是一些非常糟糕的服务器.我宁愿不必做任何类似的事情.此外,由于服务器有点旧,很高兴知道如果其中一个死了,至少我会有其他服务.我认为这个选项并不好.

最好的解决方案:我听说有一项服务具有我正在寻找的名为haproxy的确切功能.我唯一的问题是我不知道如何使用这项服务,我特别不知道如何得到我想要的用途.

我的最后一个问题

我很乐意让haproxy工作,我只需要知道如何按照我需要的方式设置它.如果有人有关于如何专门做我想要的教程的链接(我已经找到了如何让haproxy工作,而不是我想要的方式)那么我会非常感激.我会自己寻找,但我已经拥有,我甚至不知道该搜索什么.谁能帮我吗?

谢谢

最佳答案
制作您自己的配置文件,例如haproxy.cfg,包含以下内容

defaults
 mode http

frontend my_web_frontend
  bind 0.0.0.0:80
  timeout client 86400000
  acl is_owncloud   hdr_end(host) -i owncloud.mydomain.com
  acl is_webserver  hdr_end(host) -i www.mydomain.com
  use_backend       owncloud      if is_owncloud
  use_backend       webserver     if is_webserver

backend owncloud
 balance source
 option forwardfor
 option httpclose
 timeout queue 500000
 timeout server 500000
 timeout connect 500000
 server server1 10.0.0.25:5000 weight 1 maxconn 1024 check inter 10000

backend webserver
 balance source
 option forwardfor
 option httpclose
 timeout queue 500000
 timeout server 500000
 timeout connect 500000
 server server1 10.0.0.30:80 weight 1 maxconn 1024 check inter 10000

然后在您的一台服务器上运行haproxy.

./haproxy -f ~/haproxy.cfg

将所有域和子域指向此计算机.他们将根据配置进行路由.

转载注明原文:网络 – 如何按域分隔流量? - 代码日志