Рейтинг:0

Cloudflare перед Nginx Reverse — перенаправить пользователей с определенным IP на специальную страницу

флаг gr

Я запускаю обратный прокси-сервер nginx перед веб-страницей. Перед этим обратным прокси-сервером nginx также работает обратный прокси-сервер cloudflare.

Теперь я пытаюсь перенаправить пользователей с определенными ip-адресами на специальную веб-страницу. Я пытаюсь сделать это с обратного прокси-сервера nginx, но безуспешно :/

nginx.conf

    www-данные пользователя;
рабочие_процессы авто;
pid /run/nginx.pid;
включить /etc/nginx/modules-enabled/*.conf;
worker_rlimit_nofile 30000;

События {
    worker_connections 2048;
    # multi_accept on;
}

http {

    ##
    # Основные настройки
    ##

    отправить файл включен;
    tcp_nopush включен;
    tcp_nodelay включен;
    keepalive_timeout 65;
    типы_хэш_макс_размер 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    включить /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # Настройки SSL
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Удаление SSLv3, ссылка: POODLE
    ssl_prefer_server_ciphers включен;

    ##
    # Настройки ведения журнала
    ##

    доступ_лог выключен;
    журнал_ошибок /var/log/nginx/error.log;

    ##
    # Настройки Gzip
    ##

    gzip включен;

    # gzip_vary on;
    # gzip_proxyed любой;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Конфигурации виртуального хоста
    ##

    включить /etc/nginx/conf.d/*.conf;
    включить /etc/nginx/sites-enabled/*;

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/12;
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;
real_ip_header CF-Connecting-IP;

сервер {
    если ($remote_addr = 1.2.3.4) {
        переписать ^ http://www.website.com/noscrape.htm;
    }
}

}

Это моя конфигурация сайта nginx:

сервер {
    слушать 80;
    имя_сервера bla.com;

    место расположения / {
        прокси_пасс http://bla.com:80;
    доступ_лог выключен;
# proxy_cache STATIC;
# proxy_cache_valid 200 1d;
# proxy_cache_use_stale error timeout invalid_header update
# http_500 http_502 http_503 http_504;
client_max_body_size 20M;

    }

}

Любые идеи, как я могу это сделать, или это невозможно из-за cloudflare?

Richard Smith avatar
флаг jp
Похоже, вы добавили лишний блок server. Оператор `if` должен находиться **внутри** блока `server`, который обрабатывает запрос, предположительно `bla.com`.
флаг gr
Спасибо, Ричард, это была проблема! Теперь это работает!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.