1

我的问题很简单。我已经在网上搜索过,无法从我读过的内容中辨别出如何实现以下内容。我的问题很简单。以下是否可能,有人可以指出我讨论这个的详尽文章吗?我是网络新手。

我运行一个 FreeBSD 11.1-RELEASE 专用服务器。我已经建立了几个监狱,其中两个将运行 Apache 24 / php72。我有多个域名指向同一个公共 IP 地址。我想将到 www.mydomain.com 的所有端口 80 和 443 流量转发到一个被监禁的 Web 服务器,并将到 dev.mydomain.com 的所有端口 80 和 443 流量转发到另一台被监禁的 Web 服务器。我不想在我的网络查询中指定一个不同的端口来路由到开发服务器。(那为什么还要使用不同的域名呢??)这样就排除了 NAT 端口重定向。

根据我读过的所有内容,我似乎需要实现一个反向代理。我做了一些研究,根据我的需要,haproxy 看起来是最好的(四大)。然而,关于如何为负载平衡以外的东西配置 haproxy 的文档很糟糕。时期。

我在正确的轨道上吗?

我计划在主机系统上使用 ipfw 实现,因为我将有单独的监狱来处理数据库实现,并且我试图尽可能地与 PCI/PII 保持一致。(抽象和分离服务(www、dns、db)和环境(dev、qa 和 prd)。

提前感谢您节省了我留在这个星球上的大量时间。

4

2 回答 2

1

如果您有专用服务器,那么您拥有 IPv6/64 网段的变化很大。这可以简化分配事情,因为您可以完全忘记 NAT。

您确实可以使用Cloudflare之类的 CDN ,以便您也可以处理 IPv4 请求,这是一个双赢的局面。

现在,如果您没有 IPv6 并且在主主机上只有一个 IPV4,我建议使用 PF,例如,取自fabrik.red

> cat /etc/pf.conf
ext_if = "em0"
set skip on lo
scrub in all
nat on $ext_if from lo1:network to any -> ($ext_if)
pass all

稍后在主主机上,您可以使用HAproxy并将您的监狱用作后端,您可以使用 Nginx 做同样的事情,但就个人而言,对于这种情况,我更喜欢 HAProxy。

您确实可以在 AWS 等云提供商上执行此操作,例如检查此流程: 在此处输入图像描述

FreeBSD 和监狱的美妙之处在于网络堆栈,您可以完全忘记 NAT 或端口转发。

如果在附图中使用的实例是t2.large,它可以使用 3 个接口处理多达 36 个 IP,IP 是通过(DHCP)分配/请求的,一旦定义,您只需在每个监狱中使用它们。我为此使用了 fabrik.red 映像,因为允许在 root 上安装ZFS,因此您只需一个非常小的实例(8gb 磁盘)即可轻松处理 >30 个监狱。这取决于每个用例,但希望能给你一些想法。

于 2018-01-13T15:03:32.500 回答
0

是的,您将需要一个反向代理。将请求转发到主机内部 LAN 上的监狱。

我的建议是使用 pf 而不是 ipfw(除非您对 ipfw 非常熟悉),因为学习曲线不那么陡峭。

代替 haproxy,您可以使用例如 nginx,有关详细信息,请参阅nginx 反向代理多个后端

于 2018-01-12T10:09:12.493 回答