一個安裝好的pfsense 2.0 機器(如果它是你的外圍防火牆,建議安裝在實體機上)
至少2個apache伺服器(可以是虛拟機)
確定在apache伺服器之間代碼檔案是同步的(rsync、cororsync或其它可以保持web伺服器間檔案更新)
pfsense可以使用負載均衡的功能讓特定的請求壓力由多台伺服器分擔,這對于有多台應用的伺服器很有幫助,因為你可以把負載壓力分散到其它節點上而不是死磕一個節點。
我們正式開始。首先點選<code>services</code> -> <code>load balancers</code>,然後選擇<code>monitor</code>标簽。
點選右邊的<code>+</code>加号來添加一條記錄,輸入monitor的名字name和描述description(在這個示例名字和描述我都使用<code>apacheclustermon</code>),把類型type設定成<code>http</code>,主機位址host設定一個還未使用的ip(後面我們将在這個ip上建立虛拟ip,這個虛拟ip會被配置設定到故障轉移failover節點上,注:也有文章說把它設成wan ip),<code>http code</code>儲存預設的<code>200 ok</code>,然後點選<code>save</code>儲存并且使修改生效<code>apply changes</code>。
接着建立伺服器池server pool。點選<code>pools</code>标簽的<code>+</code>按鈕來添加一個池。
在該示例我指定<code>apachesrvpool</code>為服務池名稱,設定<code>mode</code>為<code>load balance</code>,端口80(。這個端口時你後端伺服器的監聽端口,你當然可以設定其它應用的其它端口,不一定非是web)。為這個池設定上一步建立的apacheclustermon,依次将你的所有web伺服器ip添加到這個池中<code>add to pool</code>,儲存并應用。
最後一步,選擇<code>virtual servers</code>标簽頁,點選<code>+</code>來添加一條記錄。填寫名稱<code>apacheclustervirtualserver</code>、描述和ip位址,這個ip位址與第1步中說的未使用的ip相同,端口80,所有發送到這個wan ip:port的連接配接都會被轉發到伺服器池中。虛拟伺服器池virtual server poll選擇上一步建立的。送出并應用。
搞定!最後不要忘記為虛拟伺服器ip和池添加防火牆規則。