Перезапись URL-адреса IIS - обратный прокси - ответ с ошибкой 404

в основном я хочу переписать URL-адрес с помощью обратного прокси: от:

http://www.xyz.in/eacc/api/fetchVendors

to

http://localhost:8080/eacc/api/fetchVendors

Я развернул приложение полной веб-службы весенней загрузки в tomcat в папке C: \ Tomcat \ apache-tomcat-9.0.7 \ webapps \ eacc.

Он содержит множество вызовов POST, таких как / eacc / api / fetchVendors, / eacc / api / users, / eacc / api / clients ... и т. Д.

Теперь я хочу открыть это приложение eacc rest через IIS.

настроить основной веб-сайт www.xyz.in.

добавлен виртуальный каталог под сайтом (www.xyz.in) под названием / eacc. физический путь: C: \ inetpub \ wwwroot \ eacc, ниже находится файл web.config.

Когда я пытаюсь выполнить один почтовый вызов, например www.xyz.in/eacc/api/fetchVendors, получаю ошибку сервера HTTP 404.

Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, изменилось его имя или временно недоступен. Просмотрите следующий URL-адрес и убедитесь, что он написан правильно.

Запрошенный URL: / eacc / api / fetchVendors

Мой файл web.config для / eacc - виртуальный каталог

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpRedirect enabled="false" />
        <rewrite>
            <rules>
                <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="http://localhost:8080/eacc/{R:1}" />
                </rule>
            </rules>
            <outboundRules>
                <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
                    <match filterByTags="A, Form, Img" pattern="^http(s)?://localhost:8080/eacc/(.*)" />
                    <action type="Rewrite" value="http{R:1}://www.xyz.in/{R:2}" />
                </rule>
                <preConditions>
                    <preCondition name="ResponseIsHtml1">
                        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/(.+)" />
                    </preCondition>
                </preConditions>
            </outboundRules>
        </rewrite>
    </system.webServer>
</configuration>

Я новичок в веб-сервере IIS. Застрял с шаблоном обратного прокси-сервера URL Rewrite. пробовал много изменений шаблона, но не повезло. Ищу помощи от кого-нибудь.


person Subbu    schedule 20.08.2018    source источник


Ответы (2)


Для меня это сработало в IIS:

Перейдите в корневой узел IIS ›› ARR

введите описание изображения здесь

Выберите параметр «Настройки прокси-сервера».

введите описание изображения здесь

и включите его:

введите описание изображения здесь

person Raghav    schedule 09.07.2020

Inbound Rule:
Use Patters : ^eacc.*
Rewrite URL : http://localhost:8080/{R:0}

Outbound Rule:
Pattern : localhost:8080
Value : www.xyz.com

Также вам необходимо добавить настройки прокси (модуль маршрутизации запросов приложений - настройки прокси-сервера):

(tick) Enable Proxy
(untick) REverse Rewrite in response headers
person Smit Jawale    schedule 24.10.2018