使用 HAProxy 进行反向代理
Reverse Proxing with HA Proxy
我主要尝试将 HA 代理用作负载平衡和健康检查目的的反向代理。
因此,我必须使用多个子域 and/or 子路径来处理不同的域。
- https://sub1.example1.com
- https://subsub.sub1.example1.com
- https://sub2.example2.com
- 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
我主要尝试将 HA 代理用作负载平衡和健康检查目的的反向代理。
因此,我必须使用多个子域 and/or 子路径来处理不同的域。
- https://sub1.example1.com
- https://subsub.sub1.example1.com
- https://sub2.example2.com
- 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