Puncte:0

Cum configurez corect Nginx XFF?

drapel hk

Incerc sa urmez instructiunile gasite aici:

https://nginx.org/en/docs/http/ngx_http_realip_module.html

și referit aici:

https://www.loadbalancer.org/blog/nginx-and-x-forwarded-for-header/

si aici:

https://stackoverflow.com/questions/43689588/how-to-set-up-realip-module-in-nginx

dar se pare că nu pot să înțeleg bine. Iată blocul relevant Nginx. Imi poate spune cineva unde gresesc?

        locație ^~ / {
            try_files $uri @backend;
        }

        locație @backend {
            set_real_ip_from <adresa-ip>;
            set_real_ip_from <adresa-ip>;
            real_ip_header X-Forwarded-For;
            
            add_header X-Frame-Options „SAMEORIGIN” întotdeauna;
            add_header X-XSS-Protection „1; mod=bloc” întotdeauna;
            add_header X-Content-Type-Options „nosniff” întotdeauna;
            add_header Politica de referință „no-referrer-when-downgrade” întotdeauna;
            add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" întotdeauna;
        }

În primul set de instrucțiuni, autorul afirmă că NGINX trebuie compilat cu modulul --with-http_realip_. Dar ceilalți pun modulul în fișierul de configurare și repornesc Nginx. Acesta din urmă nu a funcționat pentru mine, dar asta ar putea fi din cauză că nu am fișierul conf configurat corect. Care este corect și dacă Nginx trebuie compilat cu modulul, poate cineva să-mi îndrume la instrucțiuni despre cum să fac acest lucru pentru Ubuntu 20.04? Am căutat și nu am găsit informații suplimentare.

Ieșirea lui nginx -V este

Versiunea nginx: nginx/1.18.0 (Ubuntu)
construit cu OpenSSL 1.1.1f 31 martie 2020
Suportul TLS SNI activat
configurați argumente: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-KTLRnK/nginx-1.18.0=.-fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl ,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path= /usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http- proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module -- -http_slice_module --cu-threads --cu-http_addition_module --cu-http_gunzip_module --cu-http_gzip_static_module --cu-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
drapel us
Vă rugăm să adăugați rezultatul `nginx -V` la întrebare. Sunteți sigur că serverul dvs. din amonte trimite adresa IP în antetul „X-Forwarded-For”?
user3877654 avatar
drapel hk
Bună @TeroKilkanen, am adăugat mai sus rezultatul lui nginx -V. Nu sunt sigur că înțeleg întrebarea. Doresc să redirecționez tot traficul către o adresă IP și un port fix. Adresa este funcțională când o curl direct.
drapel us
Nginx-ul dvs. are modulul `realip` inclus. Ce am întrebat, ești sigur că serverul care se conectează la serverul tău trimite antetul „X-Forwarded-For” pe care vrei să-l folosești ca adresă IP a vizitatorului, în loc de adresa IP a serverului de conectare? Acesta este scopul modulului realip.
user3877654 avatar
drapel hk
Ah. Atunci poate că citesc greșit documentația. Ceea ce vreau să fac este să conectez nginx pe serverul meu la un Kubernetes NodePort. Fișierul meu de configurare funcționează când folosesc uri, dar eșuează când fac referire la adresa IP și la portul. Există vreo modalitate de a face asta?
drapel us
Vă rugăm să afișați rezultatul lui `nginx -T` pentru configurația completă.
user3877654 avatar
drapel hk
Încercând să răspund la cererea dvs., am găsit problema. Folosisem adresa IP, dar nginx voia http:// Trece cu succes testele.

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.