• [^] # Re: un début de réponse

    Posté par . En réponse au message Docker, traefik et multi port. Évalué à 2.

    voici un exemple qui devrait fonctionner avec haproxy

    on ecoute sur TONPORT de la machine principale, en mode TCP
    on regarde si c'est du SSL et si le domaine est www.domaine1.tld ou www.domain2.tld
    si c'est le cas on envoie vers le bon docker/port
    sinon on envoie sur le fourretout

    evidemment il faut que l'application sache faire du SNI (envoyer le domaine dans la requete)

    frontend tonservice-SSL
     bind *:TONPORT #alctl: listener https configuration.
     mode tcp #alctl: load balancing algorythm
     log global #alctl: log activation
     #option tcplog #alctl: log format
     timeout client 25s #alctl: client inactivity timeout
     maxconn 1000 #alctl: connections maximum
     # attente d'un client hello et rejet si pas de SNI
     tcp-request inspect-delay 5s
     tcp-request content reject if ! { req.ssl_sni -m found }
     use_backend premier_service-ssl if { req.ssl_sni -i www.domain1.tld }
     use_backend deuxieme_service-ssl if { req.ssl_sni -i www.domain2.tld }
     default_backend fourre-tout
    backend fourre-tout
     mode tcp
     option tcplog
     server local localhost:port_fourretout check
    backend premier_service-ssl
     mode tcp
     option tcplog #alctl: log format
     #default-server inter 3s rise 2 fall 3 #alctl: default check parameters
     server docker1 ip_docker1:portD1 check
    backend deuxieme_service-ssl
     mode tcp
     option tcplog #alctl: log format
     #default-server inter 3s rise 2 fall 3 #alctl: default check parameters
     server docker2 ip_docker2:portD2 check