IIS-反向代理


測試環境:Windows10、IIS/10.0

1.安裝ARR、URL Rewrite(URL重寫工具2.0)

  注意英文和中文環境的對應:

    Application Request Routing 對應中文 應用程序請求路由

    URL Rewrite Module 對應中文 URL重寫

  下載安裝ARR(也可以在IIS管理器中,Web平台安裝程序->產品->搜索框中搜索"arr"->應用程序請求路由3.0 Beta->添加->安裝): http://www.iis.net/downloads/microsoft/application-request-routing

  下載安裝URL Rewrite Module(也可以在IIS管理器中,Web平台安裝程序->產品->搜索框中搜索"url"->url重寫工具2.0->添加->安裝): http://www.microsoft.com/en-us/download/details.aspx?id=7435

  以上安裝完后重新打開 IIS 管理器,可以看到如下

2.啟用ARR:雙擊ARR(Application Request Routing)->點擊右側Server Proxy Settings...->選中Enabel proxy->點擊右側“應用”

3.啟用URL重寫,可以通過web.config配置,也可以通過界面設置(web.config最終也可以使用界面來查看和操作),比如web.config樣例,

  此時 www.che.com/che 或者 www.che.com/che/xxxx 都被代理到 www.proxy.com 或者 www.proxy.com/xxx,如果不想過濾掉"che",只需要把match url 改成 "^(che(/?|.*))$"

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="cheProxy" stopProcessing="true">
                    <match url="^che(/?|.*)$" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="www\.che\.com" />
                    </conditions>
                    <action type="Rewrite" url="http://www.proxy.com{R:1}" />
                    <serverVariables>
                        <set name="HTTP_X_FORWARDED_HOST" value="{HTTP_HOST}" />
                    </serverVariables>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

  由於使用了變量 HTTP_X_FORWARDED_HOST,所以需要在 url重寫->查看服務器變量->添加->添加HTTP_X_FORWARDED_HOST


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM