Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 18075|Отговор: 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) Ако има 1 IP, той ще провери дали IP адресът на подателя е в доверения IP списък, определен от set_real_ip_from. Ако е доверен, той ще мисли, че IP стойността в този X-Real-IP е реалната 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 (вторият отдясно) е реалният 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