Як отримати IP-адресу клієнта від AWS, Google Cloud LB і Cloudflare у Nginx?

Налаштування веб-програми в хмарі – це завжди цікаво та цікаво.

Нещодавно я запустив інструмент techukraine.net Tools, який розміщено в AWS позаду Cloudflare.

Я використовую балансувальник навантаження програми AWS і Nginx як веб-сервер. Після створення життя я переглянув access.log і помітив, що всі запити позначаються як такі, що надходять із внутрішньої IP-адреси (балансувальника навантаження).

Це не добре, якщо ви хочете проаналізувати журнали свого веб-сервера на предмет розташування відвідувачів. Я зрозумів, що мені бракує або потрібно внести деякі зміни в конфігурацію, щоб відновити IP клієнта.

Ви в тій же ситуації, що й я?

Ну, ось як ви можете отримати 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-адреси клієнта, тому ви також повинні виконати наведені нижче дії.

Отримання IP клієнта від Cloudflare

Cloudflare — чудовий постачальник CDN і безпеки, і він мені дуже подобається. Якщо ви користуєтеся Cloudflare, як і я, і хочете відновити IP-адресу відвідувача в журналі веб-сервера, ось як ви можете це зробити.

  Як використовувати AirPlay на Mac

Припустимо, що ви ввійшли на сервер 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-адрес у їхньому Офіційна сторінка.

Перезапустіть Nginx, і ви повинні побачити IP клієнта. Це допомогло мені, і, сподіваюся, вам теж.

Далі дізнайтеся, як можна реалізувати безпечні заголовки за допомогою Cloudflare Workers.

Вам сподобалось читати статтю? Як щодо того, щоб поділитися зі світом?

  Чи потрібен обліковий запис Zoom, щоб приєднатися до зустрічі