4

背景

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

那么,你的问题是什么?

好吧,正如我之前所说,我的一些服务非常相似,并且在同一个端口上运行(我有一个 Owncloud 服务器在一个端口上,我的网站托管在另一个端口上)。这意味着,如果我希望owncloud.mydomain.com访问我的 Owncloud 服务器,而www.mydoamain.com访问我的 Web 服务器,我会遇到一些问题。两个子域都到我家,服务使用相同的端口。我无法真正分离每个子域的流量。

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

可能的解决方案

我虽然只是在不同的端口上运行不同的服务,但根本不是最佳的。这意味着看起来很奇怪,人们会更难使用我的任何服务,而且这通常是我不喜欢的东西。

我考虑过在同一台服务器上提供类似的服务,但它们是一些非常小的服务器。我宁愿根本不必做那样的事情。另外,由于服务器有点旧,很高兴知道如果其中一个死了,至少我会有其他服务。我认为这个选项一点都不好。

最佳解决方案:我听说有一项服务具有我正在寻找的确切功能,称为haproxy。我唯一的问题是我不知道如何使用这项服务,尤其是我不知道如何从中获得我想要的用途。

我的最后一个问题

我很想让 haproxy 工作,我只需要知道如何按照我需要的方式进行设置。如果有人有一个关于如何做我想做的事的教程的链接(我已经发现了如何让 haproxy 工作,只是不是我想要的方式),那么我将非常感激。我会自己寻找这个,但我已经有了,我什至不知道要搜索什么。谁能帮我吗?

谢谢

4

2 回答 2

5

制作你自己的配置文件,比如 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

将您的所有域和子域指向这台机器。他们将根据配置进行路由。

于 2013-09-09T05:52:19.837 回答
0

您只需要一个 IP 地址,但您需要正确配置虚拟主机。此链接提供了 Ubuntu 虚拟主机配置的分步详细信息。这是最简单的方法,如果你坚持使用你的个人网络,其他人都会同意这是最便宜的。

https://www.digitalocean.com/community/articles/how-to-set-up-nginx-virtual-hosts-server-blocks-on-ubuntu-12-04-lts--3

于 2013-09-09T01:43:22.020 回答