使用 HAProxy 进行反向代理

Reverse Proxing with HA Proxy

我主要尝试将 HA 代理用作负载平衡和健康检查目的的反向代理。

因此,我必须使用多个子域 and/or 子路径来处理不同的域。

  1. https://sub1.example1.com
  2. https://subsub.sub1.example1.com
  3. https://sub2.example2.com
  4. https://example3.com/path1

不幸的是,我没有找到机会为每个域定义前端以将 SSL 证书文件绑定到。 此外,我不太确定 HAProxy 是否提供类似 ProxyPass 的东西来处理“路径”-Stuff。

有人可以给我一个如何使用 HAProxy 解决这个问题的例子吗?

谢谢

您可以拥有一个处理所有子域的前端,并在 bind 行上使用 ACL's to route to different backends. You define your certificates,并且可以指定多个。我不太确定“ProxyPass to handle the 'path'-Stuff”是什么意思,但如果您提供更多详细信息,我可以提供帮助。 HAProxy 非常灵活。

provides something like ProxyPass to handle the "path"-Stuff.

您可能如何处理多个子域的示例:

defaults
    mode http

frontend fe_main
    bind :80
    # define all certificates
    bind :443 ssl crt /etc/haproxy/ssl/sub1.example.com.pem crt /etc/haproxy/ssl/sub2.example.com.pem crt /etc/haproxy/ssl/example3.com.pem

    use_backend be_sub1 if { req.hdr(host) sub1.example.com }
    use_backend be_sub2 if { req.hdr(host) sub2.example.com }
    default_backend be_catchall

backend be_sub1
    server app1 192.168.1.10:80 check

backend be_sub2
    server app1 10.2.0.4:443 check ssl verify none

backend be_catchall
    server catchall1 10.3.2.5:80 check