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

Вид: 17771|Ответ: 1

[Веб] nginx получает реальный IP-адрес пользователя

[Скопировать ссылку]
Опубликовано 19.05.2018 11:38:55 | | | |
Некоторые наши интерфейсы связаны с изменениями пользовательской информации, и эти интерфейсы позволяют только стороне доступа настраивать нас, поэтому у нас есть белый список IP на nginx.

Он оснащён выходным IP стороны доступа.

Вот логи из нашего доступа к nginx.



nginx принимает наш $remote_addr как настоящий IP, но на самом деле $http_X_Forwarded_For — это настоящий IP пользователя, $remote_addr — это просто частный сетевой адрес нашего F5 (пользователь -->f5 --> nginx), в результате чего nginx берёт неправильное имя, а пользователь, меняющий интерфейс, всегда 403.

Решение:

В модуле http plus


set_real_ip_from 10.10.10.122; Скажите nginx, чтобы он получил там ценность RealIP
real_ip_header X-Real-IP; Название переменной, хранящей значение RealIP

Мочь!

Здесь мы начинаем отчёт nginx после добавления:

nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26




Поэтому добавляем модуль realip и перекомпилируем nginx


1、cd /usr/local/nginx-1.6.3
2、./configure --prefix=/usr/cmcc/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
3、Make && make install

Советы:
1. set_real_ip_from относится к реальный пользовательский IP, полученный от которого доверенный пре-прокси

2. real_ip_header относится к пользовательскому IP предыдущей прокси-передачи, с которой получается HTTP-часть полученного сообщения

3. real_ip_recursive Следует ли рекурсивно исключать до получения пользовательского IP (по умолчанию отключён)

Во-первых, real_ip_header указать имя заголовка HTTP, которое по умолчанию является X-Real-IP.

(1) Если IP 1, он проверит, находится ли IP отправителя в списке доверенных IP, указанных set_real_ip_from. Если ему доверяют, он будет считать, что значение IP в этом X-Real-IP — это реальное значение пользователя, указанное предыдущим агентом, поэтому присваивает это значение своей переменной $remote_addr; Если ему не доверяют, он не будет обработан, и $remote_addr остаётся IP-адресом отправителя.

(2) Если X-Real-IP имеет несколько значений IP, например, предыдущий прокси задаётся следующим образом: proxy_set_header X-Real-IP $proxy_add_x_forwarded_for;

Вы получаете цепочку IP, поэтому ценность real_ip_recursive сейчас крайне важна. nginx сравнит IP в списке set_real_ip_from trust справа налево в списке IP. Если real_ip_recursive отключён, то когда крайний правый IP оказывается доверенным, считается, что следующий IP (второй справа) — это настоящий IP пользователя. Если real_ip_recursive включён, его будут сравнивать справа налево, пока не найдётся ненадёжный IP. Затем скопируйте значение IP в $remote_addr.

Ресурсы:
https://help.aliyun.com/document_detail/54007.html
https://help.aliyun.com/knowledge_detail/55198.html
https://www.linux178.com/web/nginx-get-realip.html





Предыдущий:Discuz sitemaps генерируются автоматически
Следующий:Используйте балансировку нагрузки Alibaba Cloud для блокировки IP-доступа к сайтам
Опубликовано 18.06.2018 14:57:50 |
Смотри, nginx получает настоящий IP
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com