Как войти клиент реального IP, а также CDN IP?

Я использую cloudflare для своего сайта.

Проблема, которую я получил, заключается в том, что после того, как я включил модуль realip в nginx, все ip CDN заменяются на realip пользователя. Затем, когда я проверяю журнал nginx, я не могу узнать, подключается ли пользователь через CDN или напрямую к серверу.

Ниже моя конфигурация:

set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
...
real_ip_header X-Forwarded-For;

....
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '

Есть ли способ сохранить IP-адреса как realip, так и CDN?

1 ответ

Взято из: Включение исходного IP посетителя в ваши логи

Вы можете включить переменные $http_cf_connecting_ip а также $http_x_forwarded_for в log_format директивы.

Если вы хотите, чтобы IP CDN и CF-Connecting-IP не используйте real_ip_header и добавить $http_cf_connection_ip на ваш log_format:

log_format  main  '$remote_addr - $http_cf_connection_ip ...'
Другие вопросы по тегам