Puncte:0

HAProxy mai multe backend-uri Modul TCP/HTTP funcționează doar pentru un backend

drapel ru
asculta mqtt-ssl
    bind *:8883 ssl no-sslv3 crt ​​/my.pem verifica fișierul ca necesar /my/pem/all_cas.pem fișierul crl /my/pem/all_crls.pem
    modul tcp
    opțiunea tcplog
    jurnal global
    maxconn 50000
    tcp-request inspect-delay 30s
    use_backend pki cu excepția cazului în care { req.payload(0,0),mqtt_is_valid }
    default_backend emqx_k8s_svc

backend pki
    modul http
    server pki.my.domain someIP:443 ssl verifica niciunul

backend emqx_k8s_svc
    modul tcp
    jurnal global
    server emqx1 emqx-ee.emqx:1883 verifica inter 30s downinter 30s cade 1 crestere 1

Având în vedere fragmentul haproxy.cfg de mai sus, confirm următoarea problemă:

Când fac un curl/wget pe adresa de ascultare, solicitarea este în mod normal redirecționată către backend pki , așa cum ar trebui. Dar, în același timp, atunci când încercați o conexiune la backend emqx_k8s_svc clientul Mosquitto rămâne blocat la „trimiterea CONNECT” și nu se stabilește nicio conexiune.

Cum pot avea condiția ca, dacă sarcina utilă a cererii este de tip MQTT, să o trimită către default_backend, iar dacă conexiunea NU este MQTT (să zicem, un client http), redirecționați-o către backend pki .

De asemenea, am încercat următoarele, fără rezolvare:

tcp-request inspect-delay 30s
use_backend pki if !{ req.payload(0,0),mqtt_is_valid }
use_backend emqx_k8s_svc dacă { req.payload(0,0),mqtt_is_valid }
default_backend emqx_k8s_svc
-------------------------------
tcp-request inspect-delay 10s
use_backend pki if { ssl_fc }
use_backend emqx_k8s_svc dacă { req.payload(0,0),mqtt_is_valid }
default_backend emqx_k8s_svc

NOTĂ: totul rulează într-un mediu Kubernetes, cu excepția backend pki care este în altă parte (dar accesibilă) - versiunea HAProxy: 2.5

drapel jp
iar versiunea ta de `haproxy` este?
Eos Antigen avatar
drapel ru
@AlexD Îmi pare rău, tocmai am editat postarea, este 2.5

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.