IIS 8.5 - Настройка обратного прокси на основе пути - PullRequest
0 голосов
/ 06 марта 2019

В nginx я могу "proxy_pass" пользователя на другой сервер. Например (некоторые детали опущены для краткости):

server {
    listen 443 ssl;
    server_name 192.xxx.xx.xx;    
    root /var/www/...;
    location /api {
        proxy_pass https://localhost:8443;
    }
    location / {
        try_files $uri $uri/ /index.html;
    }
}

Однако, если я пытаюсь добавить подобное правило через IIS Manager (URL Rewrite -> Reverse Proxy), я получаю сообщение об ошибке «указанное имя хоста неверно», поскольку оно содержит (в моем случае) «/» ,

После ссылки на этот SO вопрос я подумал, что, возможно, это можно сделать, используя простое "пустое" правило перезаписи URL:

 <rule name="Reverse Proxy" stopProcessing="true">
                <match url="^test-rewrite" />
                <action type="Rewrite" url="http://localhost:8081" appendQueryString="false" />
            </rule>

Однако теперь он просто перенаправляет обратно на «Веб-сайт по умолчанию». В частности, сервер, работающий через порт 8081 (сервер Tomcat), содержит логику, которая перенаправляет пользователя на путь / login, если они не аутентифицированы. Вместо перенаправления пользователя на / login в приложении Java, оно перенаправляет обратно на / login на «веб-сайте по умолчанию».

Я прошу прощения, если это глупый вопрос, но я не очень хорошо знаком с IIS, и в nginx задача довольно проста.

Спасибо.

EDIT:

Чтобы уточнить, веб-сайт, размещенный на IIS, и сервер Tomcat работают на одной физической машине (именно поэтому я ссылаюсь на localhost).

...