Cum să obțineți IP-ul clientului de la AWS, Google Cloud LB și Cloudflare în Nginx?

Configurarea unei aplicații web în cloud este întotdeauna distractiv și interesant.

Recent, am lansat un instrument de instrumente tipstrick.ro, care este găzduit în AWS în spatele Cloudflare.

Folosesc aplicația de echilibrare a încărcăturii AWS și Nginx ca server web. După ce am făcut viață, m-am dus să văd access.log și am observat că toate solicitările au fost marcate ca provenind de la IP-ul intern (de echilibrare a încărcăturii).

Acest lucru nu este bun dacă doriți să analizați jurnalele serverului dvs. web pentru locațiile vizitatorilor. Mi-am dat seama că lipsesc sau trebuie să fac unele modificări de configurare pentru a restabili IP-ul clientului.

Esti in aceeasi situatie ca si mine?

Ei bine, iată cum puteți obține IP-ul clientului în jurnalele de acces Nginx.

Obținerea IP a vizitatorilor de la AWS sau Google Cloud LB

  • Conectați-vă la serverul dvs. web Nginx
  • Accesați calea unde este instalat (locația implicită /etc/nginx)
  • Faceți o copie de rezervă a fișierului nginx.conf
  • Adăugați următoarele sub bloc HTTP
real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;
  • Reporniți Nginx și ar trebui să vedeți IP-ul vizitatorului în fișierul access.log

Dacă sunteți în spatele Cloudflare, atunci veți vedea IP-ul lor în loc de IP-ul clientului, așa că trebuie să faceți și cele de mai jos.

Obținerea IP-ului clientului de la Cloudflare

Cloudflare este un excelent furnizor de CDN și securitate și îmi place absolut. Dacă utilizați Cloudflare ca mine și doriți să restaurați IP-ul vizitatorului în jurnalul serverului web, atunci iată cum puteți face acest lucru.

Presupunând că sunteți conectat la serverul Nginx

Faceți o copie de rezervă a fișierului de configurare a site-ului dvs. (de obicei aici – /etc/nginx/sites-available/yourdomain)

  Îmbunătățiți modul în care Firefox deschide, închide și comandă filele cu Tab Deque

Adăugați următoarele la începutul fișierului

set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;
real_ip_header CF-Connecting-IP;

Notă: Este posibil să doriți să validați lista de IP din acestea Pagina Oficială.

Reporniți Nginx și ar trebui să vedeți IP-ul clientului acum. Acest lucru m-a ajutat și sper că și tu.

Apoi, aflați cum puteți implementa anteturi securizate folosind Cloudflare Workers.

Ți-a plăcut să citești articolul? Ce zici de împărtășirea cu lumea?