@zorruch

Как пробросить серверные переменные запроса в IIS 8?

Суть проблемы такова:
Есть IIS, часть запросов на который нужно проксировать на nginx. На nginx-е необходимо сделать так, чтобы нему приходил пакет от ip адреса клиента, а не сервера nginx.
Для этого нужно чтобы IIS при проксировании добавлял HTTP заголовок в X-Real-IP и проблема будет решена.
Проблема заключается в том, что я не смог сделать так, чтобы IIS это делал.

web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
                <rule name="test2">
                    <match url="^qwery/(.*)$" />
                    <action type="Rewrite" url="http://example.ru/{R:0}" appendQueryString="true" logRewrittenUrl="true" />
                    <serverVariables>
                        <set name="X-Real-IP" value="{REMOTE_ADDR}" />
                        <set name="X-Forwarded-For" value="{REMOTE_ADDR}" />
                        <set name="ORIGINAL_URI" value="http//{HTTP_HOST}" />
                    </serverVariables>
                </rule>
            </rules>
        </rewrite>
	<security>
            <requestFiltering allowDoubleEscaping="true" />
	</security>

    </system.webServer>
</configuration>


На nginx X-Real-IP не приходит.

В чем дело почему так происходит?
Реквестирую любые идеи по этому вопросу
  • Вопрос задан
  • 677 просмотров
Пригласить эксперта
Ответы на вопрос 1
The_De1mos
@The_De1mos
1) Надо определить переменную
-Выбираешь сайт
-Переопределение URL-Адресов (URL Rewrite)
-Просмотр серверных переменных (View Rewrite Maps)
-Добавить (Add Rewrite Map)
-Добавляешь HTTP_X_FORWARDED_FOR
2) Определяешь переменную
set name="HTTP_X_FORWARDED_FOR" value="{REMOTE_ADDR}"

https://docs.microsoft.com/en-us/iis/extensions/ur...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы