新聞中心
pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
為夏津等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及夏津網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、夏津網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
在pfsense的網(wǎng)關(guān)和服務(wù)器中有兩種類(lèi)型的負(fù)載平衡功能。網(wǎng)關(guān)負(fù)載平衡可以通過(guò)多個(gè)WAN連接分發(fā)Internet綁定的流量。服務(wù)器負(fù)載平衡管理傳入流量,因此它利用多個(gè)內(nèi)部服務(wù)器進(jìn)行負(fù)載分配和冗余,服務(wù)器負(fù)載平衡允許流量在多個(gè)內(nèi)部服務(wù)器之間分配,它最常用于Web服務(wù)器和SMTP服務(wù)器。下面我們就以實(shí)例來(lái)介紹服務(wù)器負(fù)載平衡的設(shè)置。
下面介紹如何通過(guò)pfsense2.32配置Web服務(wù)器的負(fù)載平衡。
網(wǎng)絡(luò)環(huán)境
上圖為示例網(wǎng)絡(luò)環(huán)境。它由單個(gè)防火墻組成,使用其WAN IP地址池,DMZ段上有兩個(gè)Web服務(wù)器。
配置地址池
導(dǎo)航到 Services > Load Balancer
單擊Pools 標(biāo)簽
單擊
添加一個(gè)新的地址池
如圖所示,使用以下設(shè)置:
Name: WebServers Mode: Load Balance Description: Web server Pool Port: 80 Retry: 5 Pool Members: 添加兩個(gè)Web服務(wù)器 (10.6.0.11 和10.6.0.12) 單擊Save
地址池配置
配置虛擬服務(wù)器
虛擬服務(wù)器配置
單擊Virtual Servers標(biāo)簽
單擊
添加一個(gè)新的虛擬服務(wù)器
如圖所示,使用以下設(shè)置:
Name: WebVirtualServer Description: Web Server IP Address: The firewall’s WAN IP address, 198.51.100.6 Port: 80 Virtual Server Pool: WebServers Fall Back Pool: None 單擊 Submit(提交)
單擊 Apply Changes(應(yīng)用更改)
注意:在這個(gè)示例中,如果兩個(gè)池服務(wù)器都關(guān)閉,則虛擬服務(wù)器無(wú)法訪(fǎng)問(wèn)。 如果沒(méi)有配置虛擬服務(wù)器,防火墻將會(huì)起作用。 如果防火墻上的某些應(yīng)用綁定到80端口,那么客戶(hù)端就會(huì)直達(dá)綁定了這個(gè)端口的應(yīng)用。 這可能包括通過(guò)端口80訪(fǎng)問(wèn)內(nèi)置Web GUI,因此應(yīng)該在System > Advanced > Admin Access 選項(xiàng)卡上禁用或采用其他端口。
配置防火墻規(guī)則
防火墻規(guī)則必須配置為允許訪(fǎng)問(wèn)池中的服務(wù)器。 規(guī)則必須允許流量使用內(nèi)部IP地址和端口,并且對(duì)虛擬服務(wù)器配置中使用的外部IP地址和端口不需要任何規(guī)則限制。
創(chuàng)建一個(gè)包含池中所有服務(wù)器的別名,因此可以使用單個(gè)防火墻規(guī)則進(jìn)行訪(fǎng)問(wèn)。
導(dǎo)航到Firewall > Aliases
單擊
添加 一個(gè)別名
如圖所示,使用以下設(shè)置:
Name: www_servers Type: Hosts Hosts: 兩個(gè)Web服務(wù)器IP地址: 10.6.0.11 和 10.6.0.12 單擊 Save
單擊 Apply Changes(應(yīng)用更改)
圖中的“Name”顯示了用于此示例配置的別名,其中包含兩個(gè)Web服務(wù)器。
Web 服務(wù)器別名設(shè)置
下一步,用這個(gè)別名創(chuàng)建一個(gè)防火墻規(guī)則: 導(dǎo)航到Firewall > Rules ,切換到外部連接訪(fǎng)問(wèn)的接口(例如WAN), 單擊 在頂部添加一條新規(guī)則,設(shè)置如下:
Interface: WAN Protocol: TCP Source: any Destination Type: Single Host or Alias Destination Address: www_servers Destination Port Range: HTTP Description: Allow to Web Server
單擊 Save
單擊 Apply Changes(應(yīng)用更改)
下圖為Web服務(wù)器設(shè)置的防火墻規(guī)則,未顯示的選項(xiàng)保留默認(rèn)值。
為Web服務(wù)器添加防火墻規(guī)則
列表中顯示的規(guī)則。
Web 服務(wù)器防火墻規(guī)則
查看負(fù)載平衡狀態(tài)
現(xiàn)在已經(jīng)配置了負(fù)載平衡器,要查看其狀態(tài),請(qǐng)瀏覽到Status > Load Balancer,然后單擊“Virtual Servers”選項(xiàng)卡。此頁(yè)面顯示整個(gè)服務(wù)器的狀態(tài),通常列為“Active(聯(lián)機(jī))”或“Down(脫機(jī))”。
Pools選項(xiàng)卡顯示池的每個(gè)成員的單獨(dú)狀態(tài)(如下圖所示)。如果服務(wù)器處于聯(lián)機(jī)狀態(tài),服務(wù)器的行為綠色,如果服務(wù)器處于脫機(jī)狀態(tài),則為紅色。
此外,池中的每個(gè)服務(wù)器都有一個(gè)復(fù)選框。 已檢查的服務(wù)器在池中處于活動(dòng)狀態(tài),池中已禁用未選中的服務(wù)器,與在池編輯頁(yè)面上啟用和禁用列表之間移動(dòng)的服務(wù)器相同。 要禁用服務(wù)器:取消選中它,然后單擊保存。
如果在其中一個(gè)服務(wù)器上停止了Web服務(wù)器服務(wù),或者如果使用ICMP監(jiān)視器將服務(wù)器完全從網(wǎng)絡(luò)中刪除,則狀態(tài)將更新為“脫機(jī)”,并將服務(wù)器從池中刪除。
驗(yàn)證負(fù)載平衡
為了驗(yàn)證負(fù)載平衡, curl 是確保Web瀏覽器緩存和持久連接不影響測(cè)試結(jié)果的最佳選擇。curl 可以從 curl 官方網(wǎng)站下載,有各種操作系統(tǒng)的版本。 要使用它,只需運(yùn)行以下命令:
curl http://mysite
在該命令中,將198.51.100.6替換為站點(diǎn)的IP地址或主機(jī)名。 這必須從網(wǎng)絡(luò)外部進(jìn)行測(cè)試(例如,從WAN上的遠(yuǎn)程網(wǎng)絡(luò)或客戶(hù)端)。 例如,在外網(wǎng)用curl進(jìn)行測(cè)試:
# curl http://198.51.100.6 This is server www2 - 10.6.0.12 # curl http://198.51.100.6 This is server www1 - 10.6.0.11
測(cè)試負(fù)載平衡時(shí),設(shè)置每個(gè)服務(wù)器返回指定其主機(jī)名、IP地址或兩者,因此明確哪個(gè)服務(wù)器響應(yīng)該請(qǐng)求。 如果未啟用粘性連接,則不同的服務(wù)器將響應(yīng)每個(gè)請(qǐng)求。
故障排除
不能連接到負(fù)載平衡
不能連接到負(fù)載平衡器通常是使用測(cè)試方法不當(dāng)造成的,這通常是HTTP特有的。 Web瀏覽器通常會(huì)保持與Web服務(wù)器建立的連接,并且點(diǎn)擊刷新會(huì)重新使用現(xiàn)有的連接。 單個(gè)連接將永遠(yuǎn)不會(huì)更改為另一個(gè)平衡服務(wù)器。 另一個(gè)常見(jiàn)的問(wèn)題是網(wǎng)絡(luò)瀏覽器緩存,瀏覽器只從緩存讀取數(shù)據(jù),未真正再次刷新頁(yè)面。 最好使用諸如curl等命令行工具來(lái)測(cè)試,因?yàn)樗_保測(cè)試不受Web瀏覽器測(cè)試中固有問(wèn)題的影響。curl沒(méi)有緩存,并在每次運(yùn)行時(shí)都會(huì)重新建立與服務(wù)器的新連接。
如果啟用了粘性連接,請(qǐng)確保從多個(gè)源IP地址執(zhí)行測(cè)試。來(lái)自單個(gè)源IP地址的測(cè)試將轉(zhuǎn)到單個(gè)服務(wù)器,除非連接嘗試之間經(jīng)過(guò)了較長(zhǎng)的時(shí)間。
關(guān)閉服務(wù)器未標(biāo)記為離線(xiàn)
如果服務(wù)器關(guān)閉但沒(méi)有標(biāo)記為脫機(jī),那是因?yàn)樨?fù)載平衡守護(hù)程序執(zhí)行的監(jiān)視信號(hào)仍然處于啟動(dòng)狀態(tài)。 如果使用TCP監(jiān)視器,TCP端口必須仍然接受連接。 該端口上的服務(wù)可以以多種方式斷開(kāi),仍然可以回復(fù)TCP連接。 對(duì)于ICMP監(jiān)視器,這個(gè)問(wèn)題更加嚴(yán)重,因?yàn)榉?wù)器可以?huà)炱鸹蚬收希瑳](méi)有任何監(jiān)聽(tīng)服務(wù),仍然可以回答ping。
在線(xiàn)服務(wù)器未標(biāo)記為在線(xiàn)
如果服務(wù)器在線(xiàn),但沒(méi)有標(biāo)記為在線(xiàn),那是因?yàn)閺呢?fù)載平衡守護(hù)程序監(jiān)視器的角度來(lái)看,它不是聯(lián)機(jī)的。 服務(wù)器必須在所使用的TCP端口上回答或響應(yīng)來(lái)自最靠近服務(wù)器的防火墻接口IP地址的ping。
例如,如果服務(wù)器在LAN上,則服務(wù)器必須應(yīng)答從防火墻的LAN IP地址發(fā)起的請(qǐng)求。 要驗(yàn)證ICMP監(jiān)視器,請(qǐng)導(dǎo)航到到Diagnostics > Ping,并使用服務(wù)器所在的接口Ping服務(wù)器IP地址。
對(duì)于TCP監(jiān)視器,請(qǐng)使用“Diagnostics > Test Port”,并選擇防火墻的LAN接口作為源,將Web服務(wù)器的IP地址和端口作為目標(biāo)。
另一種測(cè)試方法是使用防火墻的shell提示符,使用console或ssh菜單選項(xiàng)8和nc命令:
# nc -vz 10.6.0.12 80nc: connect to 10.6.0.12 port 80 (tcp) failed: Operation timed out
上面是一個(gè)失敗的例子。
下面是一個(gè)成功連接的例子:
# nc -vz 10.6.0.12 80 Connection to 10.6.0.12 80 port [tcp/http] succeeded!
如果連接失敗,請(qǐng)?jiān)赪eb服務(wù)器上進(jìn)一步進(jìn)行故障排除。
與池服務(wù)器在同一子網(wǎng)中的客戶(hù)端無(wú)法訪(fǎng)問(wèn)虛擬服務(wù)器
與池服務(wù)器在同一子網(wǎng)中的客戶(hù)端系統(tǒng)將無(wú)法使用此負(fù)載平衡方法正確連接。 relayd將連接轉(zhuǎn)發(fā)到具有客戶(hù)端源地址的Web服務(wù)器。然后,服務(wù)器將嘗試直接響應(yīng)客戶(hù)端。如果服務(wù)器具有到客戶(hù)端的直接路徑,例如通過(guò)同一子網(wǎng)中的本地連接的NIC,它將不會(huì)正常通過(guò)防火墻回流,客戶(hù)端將從服務(wù)器的本地IP地址收到回復(fù),而不會(huì)在relayd中收到該IP地址。然后,由于從客戶(hù)端的角度看,服務(wù)器IP地址不正確,連接被丟棄為無(wú)效。
這樣做的一個(gè)方法是使用手動(dòng)出站NAT和制定手動(dòng)出站NAT規(guī)則,以便從LAN子網(wǎng)到達(dá)Web服務(wù)器的內(nèi)部接口(LAN)的流量轉(zhuǎn)換為L(zhǎng)AN的接口地址。這樣,流量似乎源于防火墻,服務(wù)器將響應(yīng)到防火墻,然后防火墻將該流量中繼到客戶(hù)端使用的預(yù)期地址。原始的客戶(hù)端源IP地址在該過(guò)程中丟失,最佳的解決方案是將服務(wù)器移動(dòng)到不同的網(wǎng)段。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
標(biāo)題名稱(chēng):pfSensebook中Web服務(wù)器負(fù)載平衡配置的示例分析
當(dāng)前路徑:http://www.ef60e0e.cn/article/peehed.html