最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在IIS7中應用Application Request Routing配置反向代理的圖文教程

 更新時間:2020年04月05日 11:25:06   作者:Leven  
在IIS7之前,在windows上要實現(xiàn)該功能卻不是一件容易的事情,但是在IIS7上,通過Application Request Routing模塊,我們可以輕松實現(xiàn)反向代理

在配置web服務器的時候,我們經(jīng)常遇到這樣的問題,由于某些原因,該服務器只能擁有一個公網(wǎng)IP,但是可能需要提供其他機器或者本機上其他webserver的服務器給訪問者,同時又不希望使用其他端口,如果在linux下,常見的解決方案是使用nginx作為前端server,通過反向代理間接訪問其他webserver.在IIS7之前,在windows上要實現(xiàn)該功能卻不是一件容易的事情,但是在IIS7上,通過Application Request Routing模塊,我們可以輕松實現(xiàn)反向代理.

軟件的安裝與下載 http://m.fzitv.net/softs/629246.html

安裝步驟

1. IIS的版本是7.5.7600.16385.

2. 關(guān)閉相關(guān)服務.

net stop was /y

net stop wmsvc /y

第二個服務沒有開。

3. 手動安裝ARR的依賴項。

a) Web Farm Framework module version 1.1

b) External cache module version 1.0

c) URL Rewrite module version 2.0

4.安裝ARR.version 3.0

5.啟動之前關(guān)閉的服務。

net start was

net start wmsvc

6.安裝成功。

遇到的問題:

之前使用WebPI進行安裝。他會自動安裝ARR3.0 相關(guān)的依賴項。Server Farm可以正常展示,但是ARR3.0 沒有安裝成功。查看系統(tǒng)日志 顯示:未能加載文件或程序集:

解決辦法:

將自動安裝的 arr 以及他的依賴項全都卸載。再按照以上步驟進行手動安裝。

  本次測試配置的情況,簡單起見,只在iis中測試,配置3個網(wǎng)站,第一個”LevenWeb”,使用80端口提供服務,第二個”levenblog”,下面運行著levenblog2.0.9,使用8080端口,第三個”phpweb”,下面有一個”test.php”的phpinfo頁面(iis7 php配置本文不再詳述),本機ip:192.168.1.8,為了測試,我們先進行域名綁定,也就是在leven.com.cn下新增3個子域名,域名綁定如下圖所示:

我們的目標如下:

  http://phpweb.leven.com.cn/ 訪問phpweb站點,也就是http://localhost:8081/

  http://levenblog.leven.com.cn/ 訪問levenblog站點,也就是http://localhost:8080/

  http://realblog.leven.com.cn/ 訪問公網(wǎng)上的levenblog站點,也就是http://leven.com.cn/

  http://localhost/leven 訪問levenblog站點,也就是http://leven.com.cn/

  首先前往http://www.iis.net/extensions/ApplicationRequestRouting下載Application Request Routing,然后安裝,本次實踐使用的是V2版.

  安裝完畢之后,新建3個站點:

  然后找到ARR配置菜單:

  開啟Proxy項:

  然后在levenweb站點下配置反向代理路由,配置可以使用UI界面或者直接修改web.config的模式,本次配置給出ui和config文件兩種方式,個人更喜歡config配置文件模式.

  進入該項,先配置第一項, http://phpweb.leven.com.cn/ 訪問phpweb站點,也就是http://localhost:8081/,選擇”Add Rules...”:

  然后選擇”Blank Rule”

  然后填寫如下:

  圖片看不清楚?請點擊這里查看原圖(大圖)。

  該參數(shù)設置表面ARR將攔截所有請求

  繼續(xù)在”Conditions”中選擇”Add”:

  該設置表面只有HTTP_HOST為phpweb.leven.com.cn的URL才能通過該規(guī)則,如果您綁定了多個域名,可以根據(jù)多次增加或者通過正則表達式的|來間隔

  最后在下面的Action中配置代理路徑:

  圖片看不清楚?請點擊這里查看原圖(大圖)。

  在這兒,{R:1}代表了MatchUrl中的第一個匹配括號

  同樣配置的web.config文件如下:

復制代碼 代碼如下:

<rewrite>
  <rules>
    <rule name="phpweb">
      <match url="^(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^phpweb.leven.com.cn$" />
      </conditions>
      <action type="Rewrite" url="http://localhost:8081/{R:1}" />
    </rule>
  </rules>
</rewrite>


測試訪問http://phpweb.leven.com.cn/test.php,結(jié)果如下:

  下面同樣可以配置levenblog.leven.com.cn和realblog.leven.com.cn

  Ui界面配置不再說明,配置完成的web.config如下:

復制代碼 代碼如下:

<rewrite>
  <rules>
    <rule name="levenblog">
      <match url="^(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^levenblog.leven.com.cn$" />
      </conditions>
      <action type="Rewrite" url="http://localhost:8080/{R:1}" />
    </rule>
    <rule name="realblog">
      <match url="^(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^realblog.leven.com.cn$" />
      </conditions>
      <action type="Rewrite" url="http://leven.com.cn/{R:1}" />
    </rule>
    <rule name="phpweb">
      <match url="^(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^phpweb.leven.com.cn$" />
      </conditions>
      <action type="Rewrite" url="http://localhost:8081/{R:1}" />
    </rule>
  </rules>
</rewrite>


訪問結(jié)果分別為:

  和

  我們再添加最后一項,將http://localhost/leven 代理到 http://leven.com.cn/

復制代碼 代碼如下:

<rule name="leven.com.cn">
  <match url="^leven/(.*)" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^localhost$" />
  </conditions>
  <action type="Rewrite" url="http://leven.com.cn/{R:1}" />
</rule>


但是此時訪問會出現(xiàn)問題,如下圖:

  顯然,出現(xiàn)了css丟失等情況,通過查看源碼:

  可以看到css的路徑有誤,不僅如此,所有的img,a標簽路徑全部出現(xiàn)了錯誤,代理之后的地址是/leven/xxx的,但是源地址仍然是/xxx,因此我們還需要增加一個Outbound Rule

  配置好的config文件如下:

復制代碼 代碼如下:

<outboundRules>
  <rule name="Add application prefix">
    <match filterByTags="A,Img,Script,Link" pattern="^/(.*)" />
    <conditions>
      <add input="{URL}" pattern="^/leven/.*" />
    </conditions>
    <action type="Rewrite" value="/leven/{R:1}" />
  </rule>
</outboundRules>


然后刷新:

  可見路徑正確.

  在使用了反向代理之后,編程上也有些地方需要注意了,在取客戶端IP的時候,由于多了一層代理,直接是無法獲取的,因此,我們需要開啟

  然后通過獲取Header中的X-Forworded-For字段來取得客戶端IP

  從測試來看,ARR是個非常有用的代理模塊,能完全滿足我們反向代理的需求,不僅如此,ARR還提供了UrlRewrite,ServerFarms,Cache等很多功能,很是值得我們挖掘.

相關(guān)文章

最新評論

泾川县| 措勤县| 石景山区| 石门县| 富裕县| 裕民县| 灵宝市| 临清市| 霍山县| 临湘市| 外汇| 新泰市| 木兰县| 恩平市| 惠水县| 上饶县| 大方县| 元氏县| 伊金霍洛旗| 彩票| 城市| 东乌| 辽宁省| 兰考县| 仙居县| 顺昌县| 克山县| 永宁县| 岑巩县| 广水市| 阜新| 日照市| 印江| 泾阳县| 新津县| 辽宁省| 彰化市| 安顺市| 乌拉特后旗| 金寨县| 广昌县|