侧边栏壁纸
  • 累计撰写 12 篇文章
  • 累计创建 19 个标签
  • 累计收到 1 条评论
隐藏侧边栏

haproxy分流配置

zjan
2021-11-14 / 0 评论 / 0 点赞 / 40 阅读 / 1,387 字
温馨提示:
本文最后更新于 2021-11-14,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

之前一直使用nginx做web反代服务器的,但是现在代理需要用到复用443端口,所以用一下haproxy复用443利用sni分流

haproxy.cfg

global
        log /dev/log local0
        log /dev/log local1 notice
        chroot /var/lib/haproxy
        user haproxy
        group haproxy
        daemon

defaults
        log global
        mode tcp
        option tcplog
        option dontlognull
        timeout connect 24h
        timeout client 24h
        timeout server 24h

# http转https
frontend a_http
    mode http
    bind *:80
    http-request redirect scheme https

#配置443端口,sni分流。
frontend ssl
        mode tcp
        bind *:443
        
        tcp-request inspect-delay 3s
        tcp-request content accept if { req.ssl_hello_type 1 }
        # web tcp流量转https处理ssl证书
        use_backend tcp_to_https if { req.ssl_sni -i http.example.com }
        # tcp 转发后端处理
        use_backend trojan if { req.ssl_sni -i trojan.example.com }    
        use_backend mtp if { req.ssl_sni -i mtp.example.com }

# tcp流量解https
backend tcp_to_https
    mode tcp
    server haproxy-https unix@/tmp/haproxy_https.sock send-proxy
# 处理https证书
frontend a_https
    # export DEPLOY_HAPROXY_PEM_PATH=/usr/local/etc/haproxy/cert/
    # export DEPLOY_HAPROXY_RELOAD="/bin/systemctl restart haproxy"
    # acme.sh --deploy -d <domain> --deploy-hook haproxy
    mode http
    bind unix@/tmp/haproxy_https.sock ssl crt /usr/local/etc/haproxy/cert accept-proxy
    # 处理web流量转发给后端
    use_backend nginx if { hdr(host) -i nginx.http.domain.com }
    use_backend trojan-web if { hdr(host) -i c.senlief.eu.org }

    default_backend default.web

backend default.web
    mode http

backend trojan
        mode tcp
        server trojan 127.0.0.1:1003

backend mtp
        mode tcp
        server mtp 127.0.0.1:1002

backend trojan-web
        mode http
        server trojan-web 127.0.0.1:2002

backend nginx
        mode http
        server nginx 127.0.0.1:2001
0

评论区