這個月因某些因素大量的將Server的數量減少,並把可用的整併在同一台,其中更不乏遇到一些問題
採取的方式是用 Windows 7 去架設 Web 站台,並將大量的測試網站放在同一套 IIS ((正式上線的切勿這樣做))
在這台 Windows7上面就綁了好幾個 IP,並有數十個站台,其中有走 SSL的,這邊都使用多站台 (virtual host) 的方式解決
IIS 可以像 apache 的 virtual host 一樣,建立多站台,就是說用不同的網站名稱連接時,IIS會自動判斷要用哪一個設定去做對應
在建立過程中如果在啟動站台時遇到以下錯誤訊息
原因是建立兩個不同的站台時,他 listen port 已經被佔用了,造成站台無法啟動。
可以採用不同的「主機名稱」去做設定
範例一
## Default Web Site
HTTP 繫結 192.168.120.1
## WebSSLSite
HTTP 繫結 192.168.121.1
按照以上範例,把主機名稱錯開,就可以讓兩個站台同時啟動。
當使用者輸入192.168.120.1的時候,就會自動轉到 Default Web Site 這個站台,反之192.168.121.1 就去抓WebSSLSite。
反向思考,如果只有一個IP的話,也是可以設兩個 DomainName 使其解析到同一個 IP
範例二 FQDN解析同一IP
192.168.120.1 TestA
192.168.120.1 TestB
範例三
##Default Web Site
HTTP 繫結 127.0.0.1
## WebSSLSite
HTTP 繫結 localhost
上面這些都是方式之一唷
另外在設定HTTPS的時候,若多站台都要使用SSL而遇到下面無法輸入主機名稱的狀況怎麼辦?
因為HTTPS也是使用同一個連接埠443,首要必須去改 IIS 的設定檔,修改方法如下
SETP1. IIS 服務停止
SETP2. 用記事本打開 C:Windowssystem32inetsrvconfigapplicationHost.config
SETP3.
<site name=”WebSSLSite″ id=”2″>
<application path=”/” applicationPool=”WebSSLSite″>
<virtualDirectory path=”/” physicalPath=”D:WebSSLSite″ />
</application>
<bindings>
<binding protocol=”http” bindingInformation=”*:80:192.168.121.1” />
<binding protocol=”https” bindingInformation=”*:443:” />
</bindings>
</site>
找到 https 那一行 * 代表 IP位址位指派,443是port,冒號後面就是要輸入主機名稱,把他加進去
<binding protocol=”https” bindingInformation=”*:443:192.168.121.1” />
SETP4. 存檔,啟動IIS
參考資料