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

Вид: 15060|Ответ: 0

[Веб] Фронтенд-сервер nginx и бэк-энд nginx записывают IP-адрес исходного клиента

[Скопировать ссылку]
Опубликовано 03.11.2014 9:53:23 | | |

Этот модуль позволяет менять значение IP-адреса клиента в заголовке запроса клиента (например, X-Real-IP или X-Forwarded-For).

    Эта функция очень полезна для серверов Nginx, если Nginx работает за некоторыми прокси балансировки нагрузки уровня 7, поскольку локальный IP запроса клиента (то есть адрес запроса клиента) добавляется в заголовок IP-адреса клиента при передаче через прокси уровня 7, чтобы бэкенд Nginx мог получить значение IP-адреса клиента. Модуль по умолчанию не установлен, поэтому если вы хотите использовать модуль, нужно добавить опцию --with-http_realip_module при компиляции установки.

    Причина использования этого модуля заключается в том, что он позволяет фоновому серверу записывать IP-адрес исходного клиента.

Пример конфигурации
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;


Пальцы    Порядок

   Модуль содержит только две инструкции.

Название инструкции: set_real_ip_from

Функция: Указание доверенного адреса через эту команду заменяется на точный IP-адрес. С версии 0.8.22 также можно использовать доверенные Unix-сокеты. Набор IP здесь относится к фронтендуNginxЛакилиКальмаризПротокол IPАдрес.

Синтаксис: set_real_ip_from [адрес| CIDR|" Unix:"]

Значение по умолчанию: нет

Среда использования: http, сервер, местоположение

Название инструкции: real_ip_header

Функция: Эта команда используется для установки заголовка для замены IP-адреса. Если используется X-Forwarded-For, модуль заменяет IP-адрес фронтенд-прокси на последний IP-адрес в заголовке X-Forwarded-For.

Синтаксис: real_ip_header [X-Real-IP| X-Forwarded-For]

Значение по умолчанию: real_ip_header X-Real-IP

Среда использования: http, сервер, местоположение

Сценарии применения   

    В следующем примере наша среда выглядит так: есть два сервера Nginx: один — фронтенд, другой — бэкенд, фронтенд Nginx используется как прокси, а бэкэнд Nginx — для доступа к страницам, а также есть клиент с следующим IP-адресом:

  

    Фронтенд Nginx: 192.168.7.10

    Backend Nginx: 192.168.1.15

    Хост клиента: 218.239.201.36

    Конфигурация Nginx на фронтенде выглядит так:

server {
  слушать 80;
  server_name www.xx.com;

Местоположение / {
    корень html;
    индекс index.html index.htm;
CHARSET UTF-8;
  }

Местоположение /865 {
    proxy_pass http://192.168.3.139:80/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Ведущий $host;
    proxy_redirect отсюда;
  }

……
}

Конфигурация Nginx для бэкенда следующая:

server {
  слушать 80;
  server_name местного ведущего;

  Местоположение / {
    корень /var/www/html;
    индекс index.html index.htm;
  }

Получить доступ к тесту

    Если мы получаем доступ к http://www.xx.com/865, без проблем, это может быть обычный доступ, журнал доступа выглядит следующим образом:

    Логи с фронтенда Nginx:

218.239.201.36 - - [30/авг/2011:16:09:56 +0800] "GET /865/ HTTP/1.1" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Логи с бэкенда Nginx:

192.168.7.10 - - [30/авг/2011:16:09:56 +0800] "GET // HTTP/1.0" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Мы видим, что логи бэкенда Nginx не фиксируют IP-адрес исходного клиента, а IP-адрес фронтенда Nginx.

    Если изменить конфигурацию фонового сервера Nginx на:

server {
  слушать 80;
  server_name местного ведущего;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

  Местоположение / {
    корень html;
    индекс index.html index.htm;
  }

    ……
}

Затем мы снова проводим тест доступа:

    Логи с фронтенда Nginx:

218.239.201.36 - - [30/авг/2011:16:10:28 +0800 "GET /865/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

     Логи с бэкенда Nginx:

218.239.201.36 - - [30/авг/2011:16:10:28 +0800] "GET // HTTP/1.0" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Видно, что на этот раз фоновая версия записывает IP-адрес клиента.







Предыдущий:Режим nginx proxy, получить реальный IP-адрес клиента
Следующий:Дискуз! X3.1 Все версии X3 обходят разрешение на загрузку вложений без кредитов Уязвимость неограниченного скачивания
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com