溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析

發(fā)布時(shí)間:2021-11-06 09:39:15 來(lái)源:億速云 閱讀:190 作者:柒染 欄目:建站服務(wù)器

pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

在pfsense的網(wǎng)關(guān)和服務(wù)器中有兩種類型的負(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)境

pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析

上圖為示例網(wǎng)絡(luò)環(huán)境。它由單個(gè)防火墻組成,使用其WAN IP地址池,DMZ段上有兩個(gè)Web服務(wù)器。

配置地址池

  • 導(dǎo)航到 Services > Load Balancer

  • 單擊Pools 標(biāo)簽

  • 單擊 pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析 添加一個(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

pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析

地址池配置

配置虛擬服務(wù)器

pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析

虛擬服務(wù)器配置

  • 單擊Virtual Servers標(biāo)簽

  • 單擊 pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析 添加一個(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ú)法訪問(wèn)。 如果沒(méi)有配置虛擬服務(wù)器,防火墻將會(huì)起作用。 如果防火墻上的某些應(yīng)用綁定到80端口,那么客戶端就會(huì)直達(dá)綁定了這個(gè)端口的應(yīng)用。 這可能包括通過(guò)端口80訪問(wèn)內(nèi)置Web GUI,因此應(yīng)該在System > Advanced > Admin Access 選項(xiàng)卡上禁用或采用其他端口。

配置防火墻規(guī)則

防火墻規(guī)則必須配置為允許訪問(wèn)池中的服務(wù)器。 規(guī)則必須允許流量使用內(nèi)部IP地址和端口,并且對(duì)虛擬服務(wù)器配置中使用的外部IP地址和端口不需要任何規(guī)則限制。

創(chuàng)建一個(gè)包含池中所有服務(wù)器的別名,因此可以使用單個(gè)防火墻規(guī)則進(jìn)行訪問(wèn)。

  • 導(dǎo)航到Firewall > Aliases

  • 單擊 pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析 添加 一個(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ù)器。

pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析

Web 服務(wù)器別名設(shè)置

下一步,用這個(gè)別名創(chuàng)建一個(gè)防火墻規(guī)則: 導(dǎo)航到Firewall > Rules ,切換到外部連接訪問(wèn)的接口(例如WAN), 單擊 pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析 在頂部添加一條新規(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)值。

pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析

為Web服務(wù)器添加防火墻規(guī)則

列表中顯示的規(guī)則。

pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析

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ù)器:取消選中它,然后單擊保存。 

pfSense book中Web服務(wù)器負(fù)載平衡配置的示例分析

如果在其中一個(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ò)或客戶端)。 例如,在外網(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è)常見的問(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)記為離線

如果服務(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ù)可以以多種方式斷開,仍然可以回復(fù)TCP連接。 對(duì)于ICMP監(jiān)視器,這個(gè)問(wèn)題更加嚴(yán)重,因?yàn)榉?wù)器可以掛起或故障,沒(méi)有任何監(jiān)聽服務(wù),仍然可以回答ping。

在線服務(wù)器未標(biāo)記為在線

如果服務(wù)器在線,但沒(méi)有標(biāo)記為在線,那是因?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)中的客戶端無(wú)法訪問(wèn)虛擬服務(wù)器

與池服務(wù)器在同一子網(wǎng)中的客戶端系統(tǒng)將無(wú)法使用此負(fù)載平衡方法正確連接。 relayd將連接轉(zhuǎn)發(fā)到具有客戶端源地址的Web服務(wù)器。然后,服務(wù)器將嘗試直接響應(yīng)客戶端。如果服務(wù)器具有到客戶端的直接路徑,例如通過(guò)同一子網(wǎng)中的本地連接的NIC,它將不會(huì)正常通過(guò)防火墻回流,客戶端將從服務(wù)器的本地IP地址收到回復(fù),而不會(huì)在relayd中收到該IP地址。然后,由于從客戶端的角度看,服務(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)到防火墻,然后防火墻將該流量中繼到客戶端使用的預(yù)期地址。原始的客戶端源IP地址在該過(guò)程中丟失,最佳的解決方案是將服務(wù)器移動(dòng)到不同的網(wǎng)段。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI