Skip to main content

HaProxy sni bazlı trafik dağıtımı

Routing based on SNI

Aşağıda haproxy için bir ip üzerinden sni özelliği kullanarak forwarding özelliğinin konfig çıktısını bulabilirsiniz.

bu çıktı da ;

  • Domainlerimize ait bütün sertifikaların /etc/haproxy/certs/ klasörüne
  • cert ve key alt alta aynı dosya içerisinde bulunacak şekilde yüklendikten sonra

http protokolünün sni özelliğini kullanarak farklı endpointlere route etmeyi gösteriyoruz.

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    #daemon
    debug

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    http
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  main 
    bind *:80
    acl docs hdr_dom(host) -i docs.mikronet.tech
    use_backend bk_docs if docs
    http-request redirect scheme https code 301 unless { ssl_fc }
    default_backend     bk_docs


frontend mains
        bind *:443 ssl crt /etc/haproxy/certs/
        use_backend bk_owncloud  if  { ssl_fc_sni -i storage.mikroservis.net }
        use_backend bk_owncloud  if  { ssl_fc_sni -i storage.mikronet.tech }
        use_backend bk_corelabs  if  { ssl_fc_sni -i users.corelabs.com.tr }    
        use_backend bk_hesk  if  { ssl_fc_sni -i destek.mikronet.tech }
        use_backend bk_docs if { ssl_fc_sni -i docs.mikronet.tech }

backend bk_owncloud
        balance         roundrobin
        mode http
        server owncloud 172.21.23.222:80 check


backend bk_corelabs
        balance         roundrobin
        mode http
        server users_corelabs   192.168.17.90:80 check


backend bk_hesk
        balance         roundrobin
        mode http
        server hesk_server      172.21.23.220:80

backend bk_docs
        balance         roundrobin
        mode http           
        server docs_server      172.21.23.239:80 check


#---------------------------------------------------------------------
# Monitoring stats
#---------------------------------------------------------------------
listen stats 
 bind *:81
 stats enable
 stats uri /
 stats hide-version
/etc/haproxy #