通过一个 URL 将用户导航到不同的站点和服务器

通过一个 URL 将用户导航到不同的站点和服务器

我有一个网站,比如一个仓库管理系统,可以通过 访问whmgt.example.com

然后有多个客户:客户 A、B 和 C,他们将分别使用该系统。每个人都在自己的服务器上托管此系统,由我为他们管理。我们需要单独托管的原因是每个客户的系统彼此略有不同(例如算法、功能、定制等),因此它们将运行不同的版本。

是否可以让每个人都通过此系统访问whmgt.example.com并拥有自己的服务器路径?例如,whmgt.example.com/CustA/从客户 A 的服务器加载网站。whmgt.example.com/CustB//CustA/

我该如何实现这一点?使用负载均衡器、CDN 还是其他?

如果我需要提供更多信息,请告诉我。

谢谢。

答案1

是的。使用子域名时可以。

负载平衡是一个独立的概念,用于划分负载或请求。但您的要求不是负载平衡。

答案2

乍一听好像每个客户都在自己的服务器上(即在自己的场所)运行该应用程序,但经过进一步解释后,听起来一切都在一个托管位置运行。

在后一种情况下,按照您的建议做(即为每个客户使用一个子目录)没有问题。我建议使用haproxy作为前端反向代理,它还可以处理 https 的 SSL 并与每个客户的后端服务器(或 https)进行纯 http 通信。

使用与路径前缀匹配的 ACL,并根据匹配的 ACL 选择后端。例如:

frontend https
    bind :443 ssl crt /etc/haproxy/ssl/whmgt.example.com.pem
    acl CustA path_beg /CustA/
    acl CustB path_beg /CustB/

    use_backend custa if CustA
    use_backend custb if CustB
    default_backend fallthru

backend custa
    server custa_1 192.168.0.2:80

backend custb
    server custb_1 192.168.0.3:80

backend fallthru
    server localhost:80

可以使用 fallthru 来发出路径错误或其他警告。

相关内容