Как да получите клиентски IP от AWS, Google Cloud LB и Cloudflare в Nginx?

Създаването на уеб приложение в облака винаги е забавно и вълнуващо.

Наскоро стартирах инструмент pctechbg.net Tools, който се хоства в AWS зад Cloudflare.

Използвам балансиращото натоварване на приложението AWS и Nginx като уеб сървър. След като направих живот, отидох да видя access.log и забелязах, че всички заявки са маркирани като идващи от вътрешен (за балансиране на натоварването) IP.

Това не е добре, ако искате да анализирате регистрационните файлове на вашия уеб сървър за местоположението на посетителите. Разбрах, че липсвам или трябва да направя някои промени в конфигурацията, за да възстановя IP адреса на клиента.

  Как да изключите звука при обаждане в Zoom

В същата ситуация ли си като мен?

Е, ето как можете да получите IP адреса на клиента във вашите регистрационни файлове за достъп на Nginx.

Получаване на IP адрес на посетител от AWS или Google Cloud LB

  • Влезте във вашия уеб сървър Nginx
  • Отидете до пътя, където е инсталиран (място по подразбиране /etc/nginx)
  • Направете резервно копие на файла nginx.conf
  • Добавете следното под HTTP блок
real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;
  • Рестартирайте Nginx и трябва да видите IP адреса на посетителя във вашия access.log файл

Ако сте зад Cloudflare, тогава ще видите техния IP вместо IP на клиента, така че трябва да направите и по-долу.

  Поправете грешка на Forza Horizon FH5 0x803FB107

Получаване на клиентски IP от Cloudflare

Cloudflare е страхотен доставчик на CDN и сигурност и аз наистина го харесвам. Ако използвате Cloudflare като мен и искате да възстановите IP адреса на посетителя в регистрационния файл на уеб сървъра, тогава ето как можете да го направите.

Ако приемем, че сте влезли в сървъра на Nginx

Направете резервно копие на конфигурационния файл на вашия сайт (обикновено тук – /etc/nginx/sites-available/yourdomain)

Добавете следното в началото на файла

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;

Забележка: Може да поискате да потвърдите IP списъка от техния Официална страница.

  Вижте всички r/видео като канал и пропуснете щракването върху връзки [Web]

Рестартирайте Nginx и трябва да видите IP адреса на клиента сега. Това ми помогна, надявам се и на вас.

След това разберете как можете да внедрите защитени заглавки с помощта на Cloudflare Workers.

Приятно ви е да прочетете статията? Какво ще кажете за споделяне със света?