Различение, названное URL для перезаписи ответа для приложения кота через IIS ARR, инвертирует прокси

Привет сообществу в Serverfault!

У меня есть проблема при попытке настроить мой IIS для открытия соответствующего менеджера APP на двух Серверах Tomcat на той же машине.

Когда я называю сайты непосредственно через http://servername:8081/manager и http://servername:8080/manager (другой Tomcat) соответственно, все хорошо работает.

Кошмар начинается, когда я пытаюсь перенаправить запрос к http://servername/manager7 к первому Tomcat и http://servername/manager8 к второму серверу. Ссылки в Resonse HTML затем всегда содержат/manager7/..., даже если я называю URL http://servername/manager8.

Ниже мои правила перезаписи. Я настроил их на уровне сервера.

<rewrite>
        <globalRules>
            <clear />
            <rule name="Tomcat7" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
                <match url="*7*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Rewrite" url="http://wwwts02:8081/{R:1}{R:2}" />
            </rule>
            <rule name="Tomcat8" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
                <match url="*8*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Rewrite" url="http://wwwts02:8080/{R:1}{R:2}" />
            </rule>
        </globalRules>
        <outboundRules>
            <clear />
            <rule name="Tomcat8" preCondition="Recognize Tomcat8" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
                <match filterByTags="A, Form, Img, Link, Script" pattern="/manager*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                </conditions>
                <action type="Rewrite" value="/manager8{R:1}" />
            </rule>
            <rule name="Tomcat7" preCondition="Recognize Tomcat7" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
                <match filterByTags="A, Form, Img, Link, Script" pattern="/manager*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                </conditions>
                <action type="Rewrite" value="/manager7{R:1}" />
            </rule>
            <preConditions>
                <preCondition name="Recognize Tomcat8">
                    <add input="{REQUEST_URI}" pattern="(.)*/(.*)8/(.*)" />
                </preCondition>
                <preCondition name="Recognize Tomcat7">
                    <add input="{REQUEST_URI}" pattern="(.*)/(.*)7(.*)" />
                </preCondition>
            </preConditions>
        </outboundRules>
    </rewrite>

Кто-либо может думать о других опциях, которые я имею?
Я также попробовал ISAPIRedirect.dll, предлагаемый Microsoft, но кажется, что это не поддерживает перезапись ответов HTTP вообще.

Направьте меня, что попробовать затем.
Любая справка будет значительно цениться и не стесняться запрашивать дополнительную информацию, на которую необходимо ответить.

Извините за мой, вероятно, плохой английский язык, поскольку я немец.

1
задан 12 May 2015 в 10:06
1 ответ

Соответствие шаблону * 7 * недопустимо. В нем написано <ничего> <любое время> , за которым следует <7> <любое время> , для большей ясности: он соответствует всем, потому что существует 0 или более Включено 7 символов.

Возможно, вы захотите сопоставить sth. например (. * 7. *) - скобки для разрешения ссылки с помощью {R:1} .

0
ответ дан 4 December 2019 в 07:41

Теги

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