将IIS中的虚拟目录指向另一台服务器IP

时间:2016-01-03 13:23:25

标签: windows iis iis-7 server

我有以下设置: -

IIS Server 7

  • 域名:abc.xyz.com

  • 虚拟目录:abc.xyz.com/myapp /

NGINX服务器

  • 192.168.23.122

我的要求是每当有人打开abc.xyz.com/myapp/时,它应该在内部指向NGINX IP,但地址栏中的URL应该是abc.xyz.com/myapp/以及应用程序中的其他链接和导航应该发生。

  • 可以使用IP从IIS服务器访问NGINX服务器。

当前Web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="ReverseProxyRuleForNginx" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{CACHE_URL}" pattern="^(http?)://" />
                    </conditions>
                    <action type="Rewrite" url="{C:1}://192.168.1.105/{R:1}" />
                </rule>
            </rules>
        </rewrite>
</system.webServer>

我正在点击网址:

  

http://localhost/myapp/

     

192.168.1.105是其他系统上的nginx服务器,我可以从IIS服务器访问。

1 个答案:

答案 0 :(得分:1)

我正在使用Helicon ISAPI_Rewrite,它允许跨ASP.NET应用程序重写,这是内置的IIS重写模块无法完成的。

(请注意,似乎I'm wrong on this)。

它们具有类似= " . $id . "的语法,用于编写重写/代理规则,例如:

.htaccess

(这是未经测试的,只是为了提出一个想法)。

存在... RewriteEngine on RewriteBase / RewriteRule ^/myapp/(.*?)$ http://localhost/myapp/ [QSA,P] ... 个参数,因为a rewrite rule cannot capture URL parameters