Puncte:0

Cum să accesați antetul X-Forwarded-For pe HAProxy în spatele AWS Loadbalancer

drapel tl

Pe instanțele HAProxy care rulează pe K8S, trebuie să blochez manual anumite adrese IP pe HAProxy. În prezent, nu reușesc să le înregistrez. Conform documentelor AWS, balansoarele de încărcare setează X-Redirecţionat-Pentru antetul cererii și completați adresa IP a clienților.

Când încerc să înregistrez acest antet (și, prin urmare, IP-ul clienților), primesc întotdeauna șiruri goale cu HAProxy versiunea 2.0.18 și 2.2.20. Deci, cred că am configurat greșit HAProxy. Configurația mea arată așa:

global
    demon
    maxconn 256
    log stdout format raw local0

implicite
    modul http

    opțiunea httplog
    opțiunea dontlognull

    timeout conectare 15000ms
    timeout client 150000ms
    server timeout 150000ms

lista de utilizatori global_auth
    user someuser parola nesigură somepass

frontend http-in
    lega *:80
    bind *:443 ssl crt /etc/certs/myapp-de.pem/cert_bundle_key.pem alpn h2, http/1.1

    opțiunea httplog
    opțiunea dontlognull

    antetul cererii de capturare X-Forwarded-For len 500
    antetul cererii de captare x-forwarded-for len 500

    jurnal-format „Anteturi = --%hr--, --%hrl-- | Anteturi2: --%[capture.req.hdr(0)]--, --%[capture.req.hdr(1) ]--"
    jurnal global

    acl host_ssl_exception hdr(gazdă) -i jobs.myapp.com

    schema de redirecționare codul https 301 dacă !{ ssl_fc } !host_ssl_exception

    acl is_post method POST|OPȚIUNI
    acl is_get metoda GET

    default_backend myapp-web

backend myapp-web
    modul http
    compresie algo gzip
    tip de compresie text/html text/plain text/css application/javascript application/json
    server web1 myapp-web.myapp-${TRACK}.svc.cluster.local:80 maxconn 32 verificare cookie

Toate, cu excepția unuia, au fost eliminate. HTTPS și HTTP2 activate. The captură pare să eșueze, dar în prezent nu înțeleg de ce.

Puncte:-1
drapel kr

Adăuga trimite-proxy pentru dumneavoastră Server linia de configurare în backend myapp-web config pentru a primi IP-ul corect al clientului.

drapel tl
Vă mulțumim pentru recomandare. Corectează-mă, cred că `send-proxy` transmite antete legate de proxy către backend. Dar nu asta este ceea ce trebuie să realizez. Trebuie să blochez anumite adrese IP deja pe HAProxy. Și HAProxy își primește solicitările de la o configurare AWS Loadbalancer. Și AWS LB-urile au setat antetul „X-Forwarded-For”, pe care aș dori să-l folosesc pentru a bloca deja anumite adrese IP, înainte ca solicitările să-mi ajungă backend-urile.
Orphans avatar
drapel cn
http-request set-header X-Forwarder-For %[src]
Orphans avatar
drapel cn
Acest lucru ar trebui să funcționeze, cel puțin în 2.2.9
drapel tl
@Orphans: Acest lucru trimite antetul „X-Forwarded-For” către backend-urile mele, ceea ce nu este ceea ce aș dori să obțin. Problema este că HAProxy ca primă mașină din linie după un echilibrator de încărcare AWS clasic nu poate capta/înregistra nici măcar antetul „X-Forwarded-For”, care ar trebui să fie setat pe ELB. Vreau să filtrez traficul deja pe HAProxyy, astfel încât nici măcar să nu-mi lovească backend-urile și nu înțeleg de ce nu văd acel antet.

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.