Обзор Cloudflare, подключение к Nginx

Cloudflare — американская компания, предоставляющая услуги CDN, защиту от DDoS-атак, безопасный доступ к ресурсам и серверы DNS. Сервисы Cloudflare работают как обратный прокси (reverse proxy) для сайта.

В это статье подразумевается, что вы уже добавили свой домен в Cloudflare и у вас настроен Nginx или Apache.

На приведённых ниже диаграммах показаны различные способы обработки IP-адресов с Cloudflare:

1 режим. Проксирование Cloudflare выключено: исходные IP-адреса посетителей появляются в логах вашего веб-сервера. (Original vistors IPs appear in your logs).

2 режим. Обратный прокси Cloudflare включен, но расширения на вашем веб-сервере не настроены: вместо исходных IP-адресов посетителей в логах вашего веб-сервера вы будите видеть IP Cloudflare.

3 режим. Обратный прокси Cloudflare включен, и вы настроили расширения на вашем веб-сервере: исходные IP-адреса посетителей появляются в логах вашего веб-сервера.

Используйте mod_remoteip для настройки связи между Cloudflare и веб-сервером Apache.

Стандартная проблема всех обратных прокси (reverse proxy) в том что, сервер за прокси не видит реальный IP адресс посетителя сайта. Соответственно и решение этой проблемы тоже стандартное и хорошо описано на английском языке в официальной документации Cloudflare: Restoring original visitor IPs (Восстановление исходных IP-адресов посетителей)

Пошаговая настройка связки Cloudflare (в режиме обратного проксирования) с веб-сервером Nginx.

Копируем текущий список IP адресов Cloudflare (раздел Nginx). Раскоментируем строку real_ip_header X-Forwarded-For; и вставим в конфигурационный файл Nginx nginx.conf в раздел http.

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 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;
 
#use any of the following two
 
#real_ip_header CF-Connecting-IP;
real_ip_header X-Forwarded-For;

Применяем конфигурацию

systemctl reload nginx

Всё! Проверяем логи Nginx, там вы должны увидеть настоящие IP посетителей вашего сайта.

Читайте также: Где получить SSL сертификат бесплатно? Использование центра сертификации Let’s Encrypt, Бесплатные Быстрые Публичные DNS Сервера (обновлено 06.04.2022).

eTalk курсы английского языка.