懂Haproxy与GETH的人,反向代理

假设 代理服务器为1.1.1.1

后端节点服务器2.2.2.2 与 3.3.3.3

网域为  proxy1.xxx.com 对应2.2.2.2
            proxy2.xxx.com 对应3.3.3.3

然后后端节点服务器的端口为

http://2.2.2.2:8545
ws://2.2.2.2:8546
http://3.3.3.3:8545
ws://3.3.3.3:8546

需求是

访问https://1.1.1.1/h1  的时后 反向代理到 http://2.2.2.2:8545 并且SSL加密
访问https://1.1.1.1/h2  的时后 反向代理到 http://3.3.3.3:8545 并且SSL加密
访问wss://1.1.1.1/w1  的时后 反向代理到 http://2.2.2.2:8546  并且SSL加密
访问wss://1.1.1.1/w2  的时后 反向代理到 http://3.3.3.3:8546  并且SSL加密

这套我玩NGINX已经玩的纯熟了, 可是Haproxy的性能比较好。

关于那些ACL之类的 我怎么搞都弄不出来

需要真的能手把手教的 别让我再去看那些我看过的文。 有偿!

【以下回答由 GPT 生成】

怎样用Haproxy反向代理实现负载均衡?

对于使用Haproxy实现负载均衡并进行反向代理的问题,我可以为您提供以下解决方案:

首先,确保您已经安装了Haproxy并具备配置文件的访问权限。

  1. 打开Haproxy的配置文件(通常位于/etc/haproxy/haproxy.cfg),并添加以下配置:
frontend front-https
    bind 1.1.1.1:443 ssl crt /etc/haproxy/cert.pem
    acl path_h1 path_beg /h1
    acl path_h2 path_beg /h2
    use_backend backend_h1 if path_h1
    use_backend backend_h2 if path_h2

frontend front-wss
    bind 1.1.1.1:443 ssl crt /etc/haproxy/cert.pem
    acl path_w1 path_beg /w1
    acl path_w2 path_beg /w2
    use_backend backend_w1 if path_w1
    use_backend backend_w2 if path_w2

backend backend_h1
    server server_h1 2.2.2.2:8545

backend backend_h2
    server server_h2 3.3.3.3:8545

backend backend_w1
    server server_w1 2.2.2.2:8546

backend backend_w2
    server server_w2 3.3.3.3:8546

这里使用了两个前端(分别用于https和wss协议)和四个后端(分别对应四个转发规则),您可以根据实际需求进行调整。

  1. 确保您已经生成了合适的SSL证书,并将其路径指定为crt参数后的证书路径。

  2. 保存并关闭配置文件。

  3. 重新加载Haproxy的配置文件以使更改生效。在命令行运行以下命令:

sudo service haproxy reload
  1. 确保防火墙已经允许相关的端口访问。如有需要,请配置防火墙以允许外部对1.1.1.1的443端口的访问。

  2. 完成以上步骤后,当访问https://1.1.1.1/h1时,请求将会被转发到http://2.2.2.2:8545;当访问https://1.1.1.1/h2时,请求将会被转发到http://3.3.3.3:8545;类似地,wss协议的请求也将会被正确转发。

希望以上解决方案能够帮助到您。如果您还有其他问题或需要进一步的指导,请随时告诉我。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^