Отображение реального IP посетителей сайта

=-= Nginx =-=

* Простые способы:

При использовании nginx как прокси для apache, настройки достаточно внести только на стороне конфигурации nginx, а именно в тех location, где делается proxy_pass на apache.
Необходимо добавить (при необходимости - изменить) установку заголовков

proxy_set_header X-Forwarded-For $http_x_real_ip;
proxy_set_header X-Real-IP $http_x_real_ip;

При использовании nginx совместно с php-fpm (fastcgi) для замены заголовка REMOTE_ADDR следует изменить в параметрах fastcgi_params
fastcgi_param REMOTE_ADDR $remote_addr;
на
fastcgi_param REMOTE_ADDR $http_x_real_ip;

Так же в обоих случаях рекомендуем перенастроить логирование, т.к. в access логах будут фигурировать IP адреса Cloud-Shield вместо реальных адресов посетителей.
Чтобы исправить это создайте новый конфиг /etc/nginx/conf.d/logs.conf

log_format cloud-shield     '$http_x_real_ip - $remote_user [$time_local] '
                                               '"$request" $status $bytes_sent '
                                               '"$http_referer" "$http_user_agent" "$gzip_ratio" '
                                               '$remote_addr $http_x_cs_ray $http_x_cs_ipcountry';

И далее включить использование этого формата в конфигурации вашего сайта в /etc/nginx/sites-enabled заменив
access_log /var/log/nginx/access.log;
на
access_log /var/log/nginx/access.log cloud-shield;

Незабудьте применить внесенные изменения, выполнив коману
/etc/init.d/nginx configtest && /etc/init.d/nginx reload


* Вариант для продвинутых:

Воспользоваться модулем ngx_http_realip_module.
Требует пересборки nginx из исходников с параметром --with-http_realip_module
В nginx.conf добавить:

set_real_ip_from  185.211.244.64/25;
real_ip_header    X-Forwarded-For;


=-= Apache =-=

Настоятельно рекомендуем установить nginx в качестве proxy перед apache с целью снижения нагрузки и повышения отказоустойчивости вашего ресурса.

Временное решение:
Установить модуль mod_remoteip и произвести настройку

<IfModule !mod_remoteip.c>
   LoadModule remoteip_module modules/mod_remoteip.so
</IfModule>

<IfModule mod_remoteip.c>
   # Cloud-Shield Header
   RemoteIPHeader CS-Connecting-IP
   # Cloud-Shield IPv4 Address Ranges
   RemoteIPTrustedProxy 185.211.244.64/25
</IfModule>

  • 1 Пользователи нашли это полезным
Помог ли вам данный ответ?

Related Articles

Первоначальная настройка при reverse proxy защите

При заказе защиты одним из обязательных полей является upstream IP - публичный адрес Вашего веб...