如何讓IIS及其它web服務於一台伺服器上和平共處

本部份主要是針對IIS在啟動時是獨佔了0.0.0.0:80的狀態,因此在Windows平台上安裝了IIS之後,就無法再透過Apache(或其它的web service)去提供Web服務,若公司有兩種不同需求的Web服務,主機也有不足的問題,那麼我們該如何處理呢?

本部份主要是針對IIS在啟動時是獨佔了0.0.0.0:80的狀態,因此在Windows平台上安裝了IIS之後
就無法再透過Apache(或其它的web service)去提供Web服務,若公司有兩種不同需求的Web服務
主機也有不足的問題,那麼我們該如何處理呢?

本文分以Windows 2008及Windows 2003分段討論,可透過下面的連結快速的連結到指定的OS版本的作法:

首先,我們先說明一下,在這個環境之下的需求:
1.一台web server上掛有兩個網路及不同的兩個IP
2.分配IP 10.10.10.1給Aache
3.指定IIS使用192.168.1.241

Windows 2008系列含R2

Windows 2008已經將httpcfg攻能以netsh取代了它的工能,並且內建於windows 2008之中,因此不需要另外進行安裝
欲將IIS 7.0(7.5)等指定成為只服務在單一的網卡上,這個部份就變的非常的簡單了,只需要一個簡單的指令即可:

首先我們先看一下,現在的80port是指定在那個IP,以netstat -na來進行查覽一下,可以看到80port是服務在0.0.0.0
未命名 - 8 

1.首先於指令模式之中輸入netsh
2.於netsh>後輸入http(代表設定http的設定值)
3.接下來我們將現在IIS到底在那一個IP上做服務,輸入show iplisten(空白代表0.0.0.0)
4.接下來指定192.168.1.241指定為IIS服務聽取的IP,輸入add iplisten 192.168.1.241
5.我們再度的輸入show iplisten來看一下是不是成功的指定了
未命名 - 4 

接下來將w3svc(web服務)重新的啟動,輸入net stop w3svc及net start w3svc

再次的以netstat -na來檢查一下,可以由下圖發現80port的服務已經被指定到192.168.1.241了,完成…!

Windows 2003系列含R2

由於Web service集中於Web伺服器上,因此為了解決IIS能與Apache相容,並且能IIS及其它web服務安裝於指定IP
並只針對指定IP聽取指定服務,必須透過安裝進階管理套件設定IIS http協定只聽取指定IP,而主機所有網卡(0.0.0.0:80)。

安裝進階管理套件

進階管理套件必須使用windows server 2003第一片光碟片,當您置入光碟片後會出現下列視窗,請直接點選『執行其它工作』。

未命名 - 12

選擇『瀏覽此CD』

未命名 - 13

在瀏覽CD的目錄下請點選SUPPORT目錄,並且進入該目錄中。
未命名 - 14

進入SUPPORT目錄後,請再點選TOOLS目錄
未命名 - 15

請於TOOLS目錄中執行SUPTOOLS.MSI,以開始安裝進階管理工具。
未命名 - 16

請在安裝精靈下直接點選『下一步』。
未命名 - 17

請點選I Agree後,點選下一步。
未命名 - 18

輸入好相關名稱及組織單位名稱,接下來點選下一步。
未命名 - 19

依照預設值進行安裝,並點選install now,進行安裝。
未命名 - 20
未命名 - 21

安裝完成後,按下finish以結束本工具的安裝程序。
未命名 - 22

設定http聽取指定IP

在安裝好進階管理套件後,請直接點選開始列->執行,並且於執行功能中輸入”cmd”以啟動指令模式。
未命名 - 24
未命名 - 25 

接下來共分為三個步驟:設定聽取IP,確認設定,重新啟動http協定。
首先我們先來看一下原本的80 Port是指派給0.0.0.0
未命名 - 2

接下來於指令列輸入:httpcfg set iplisten -i 192.168.1.241
接下來請輸入httpcfg query iplisten,來檢查是否有列出設定聽取的IP
緊接著輸入net stop http /y,停止http服務
再輸入net start w3svc,重新啟動http服務

完成上述設定後,可以透過netstat –na來檢視80埠由192.168.1.241聽取服務
未命名 - 27


Anything keeps Availability.
Anywhere keeps Integrity.
Anytime keeps Confidentiality.
keep A.I.C. = Information Security