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
[^] # Re: un début de réponse
Posté par NeoX . 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)