În prezent, folosim HAproxy pentru a redirecționa traficul de intrare către domeniul nostru exemplu.domeniu
către containerele noastre, care sunt accesibile numai prin interfața locală (de ex. 127.0.0.1:12000:8080
Pentru a realiza acest lucru, configurația noastră actuală arată cam așa:
implicite
modul http
timeout connect 5000
verificare timeout 5000
timeout client 20000
timeout server 20000
domeniul frontend
lega *:80
bind *:443 ssl crt /etc/haproxy/certs/domain.cert
bind *:11000-11199 ssl crt /etc/haproxy/certs/domain.cert
Schema de redirecționare http-request https cu excepția cazului în care { ssl_fc } # ssl_fc returnează adevărat dacă solicitarea folosește deja SSL
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https dacă { ssl_fc }
# Porturile 11000-11099 sunt rezervate pentru trafic securizat
acl secure_0_host dst_port 11000
acl secure_1_host dst_port 11001
# Porturile 11100-11199 sunt rezervate traficului nesigur
acl insecure_0_host dst_port 11100
acl insecure_1_host dst_port 11101
# Backend-uri sigure
use_backend secure_0 dacă secure_0_host
use_backend secure_1 dacă secure_1_host
# Backend-uri nesigure
use_backend insecure_0 dacă insecure_0_host
use_backend insecure_1 dacă insecure_1_host
# Backend de rezervă
default_backend fallback_backend
backend fallback_backend
http-request redirection location https://example.domain cod 302
# Backend-uri sigure
backend secure_0
server secure_0 127.0.0.1:12000 ssl verifica niciunul
backend secure_1
server secure_1 127.0.0.1:12001 ssl verifica niciunul
# Backend-uri nesigure
backend nesigur_0
server nesigur_0 127.0.0.1:12100
backend nesigur_1
server nesigur_1 127.0.0.1:12101
Această configurare funcționează, dar este foarte obositor să adaugi manual fiecare mapare de porturi și, de asemenea, mă deranjează că trebuie să folosesc porturi diferite (12000-12099
) pentru containerele docker, decât ascult cu HAproxy.
Este cumva posibil să spunem configurației că un anumit portrange (11000-11099
) ar trebui să fie transmisă la 127.0.0.1:11000-11099
?