由於眾所周知的安全考慮,不想對公網暴露 Domino HTTP 伺服器的位址?
多個 Domino 伺服器能不能對外只用一個位址?
在部署 Domino 的情況中,這種需求越來越多。 而這些可以通過安裝 Apache HTTP 伺服器, 把它作為 Domino 的逆向代理(reverse proxy)來實現。
為什麼選擇 Apache HTTP 伺服器
首先,它是一個開源的專案,文檔源碼都可以參考到。 其次,它已經被廣泛使用,健壯性有口皆碑。 最後,安裝配置很簡單,在 Windows 上不到 10 分鐘就能完成。
逆向代理是 Apache 伺服器的一個應用,它處理來自 internet 上用戶端的連接請求,然後將請求轉發給內部網路上的伺服器,並將從內部網路上伺服器上得到的結果返回給 internet 上請求連接的用戶端。 可參看以下示意圖:
圖 1. 逆向代理示意圖
上圖中 Apache 逆向代理伺服器上沒有保存任何網頁的真實資料,所有的內容都來來自于在內部的 Domino 伺服器上。 因此對逆向代理伺服器的攻擊並不會使得 Domino 伺服器上的資料遭到破壞,這樣就增強了 Web 服務器的安全性。
實際部署中,通常逆向代理位於防火牆外,Domino 伺服器位於防火牆裡,能受到防火牆的安全保護。
Apache 逆向代理還可以根據需求配置容許的緩存資料,比如圖片。 還可以配置動態負載平衡,等等其他一些特性,但這些特性不在本文介紹範圍內。
安裝 Apache Web 服務器
我們以 Windows 為例。
首先去在 apache 的網站 HTTP://HTTPd.apache.org/download.cgi 下載一個穩定版 Windows 安裝包。 下載完後,點擊執行安裝,一路使用預設的配置,只是在填 host 名字的時候,填上實際安裝機器對外的 host 名字,比如我們這裡填:bj.cn.ibm.com.
安裝完後,視窗右下角會有一個圖示 ,這時 apache HTTP 伺服器已經自動運行了。 嘗試打開瀏覽器,輸入 HTTP://dev.cn.ibm.com, 回車,會打開預設的網頁,表示 apache 伺服器工作正常。
如果是測試組態環境,並沒有真正的對外 host 名字,可以在 c:\windows\system32\drives\etc\hosts 裡面加上:
ip 位址 hostname
如果機器的 ip 位址是 192.168.0.11,就可以加上如下一行:
192.168.0.11 bj.cn.ibm.com
Hostname 可以是多個。 若多個 hostname 實際使用同一個 ip,比如下面就是 2 個 host 共用一個 ip 位址:
192.168.0.11 bj.cn.ibm.com sh.cn.ibm.com
逆向代理配置
下面我們來看具體怎麼和 Domino 伺服器結合,配置逆向代理。 現在假設11545.html">我們有 2 台 domino 伺服器,他們屬於是一個集群(cluster)。
其中一台 host 名字是:inotesBJ.cn.ibm.com
另一台 host 名字是:inotesSH.cn.ibm.com
Apache 伺服器就是上面剛剛安裝好的。
在配置好後,internet 使用者直接使用 bj.cn.ibm.com 來透明訪問 inotesBJ.cn.ibm.com; 或者使用 sh.cn.ibm.com 來透明訪問 inotesSH.cn.ibm.com。 他們實際並不知道 inoteBJ/inotesSH.cn.ibm.com 的存在。
我們知道 Domino Web 服務支援 HTTP 和 htpps 兩種方式,HTTPs 的逆向代理配置稍微複雜一些,下面先 HTTP 的配置開始。