基于輕量應用負載均衡,您可以部署高可用架構應用集群。相較于使用單臺輕量應用服務器搭建的應用,高可用架構應用集群可以提供業務分發、彈性擴展等能力,以保證應用的穩定性和可用性。本文介紹如何部署輕量應用服務器高可用架構。
前提條件
確保您已擁有域名。如果您還沒有注冊域名,可以通過阿里云域名服務購買域名。更多信息,請參見什么是阿里云域名服務。您也可以通過其他域名服務商自行注冊域名。
背景信息
高可用架構應用集群具備的特點如下所述:
輕量應用負載均衡可以將公網訪問的流量分發到后端多臺輕量應用服務器上,在增強應用吞吐能力的同時,可以消除服務器的單點故障,提升應用可用性。
通過自定義鏡像功能,您可以快速創建部署了相同應用的輕量應用服務器,然后添加至輕量應用負載均衡作為后端實例,即可實現業務的彈性擴展。
本文示例場景中,將通過輕量應用負載均衡、輕量應用服務器、域名以及云解析DNS部署高可用架構應用集群。高可用架構示意圖如下所示:示意圖中涉及的資源說明如下:
地域:輕量應用負載均衡僅支持添加相同地域下的后端實例。
本示例中將在華東1(杭州)地域下,創建輕量應用負載均衡、輕量應用服務器。
輕量應用服務器:應用服務器和數據庫服務器分離。在提升應用吞吐能力的同時,保證了數據存儲效率以及數據安全。
本示例中將創建兩臺輕量應用服務器作為應用服務器(本文中簡稱
服務器A
和服務器B
),創建一臺輕量應用服務器作為數據庫服務器(本文中簡稱服務器C
)。輕量應用負載均衡:默認采用HTTP協議(目前不支持HTTPS協議),監聽80端口,且轉發規則為輪詢模式。
本示例中將創建一臺輕量應用負載均衡,然后將兩臺應用服務器作為后端實例。
域名與云解析DNS:輕量應用負載均衡需要綁定域名以實現訪問后端實例的功能。
因此您需要使用云解析DNS,將自己擁有的域名(本文域名示例為
example.com
)通過CNAME記錄解析至輕量應用負載均衡公網服務地址。
注意事項:
本文示例場景中,基于Nginx、PHP搭建應用服務器的運行環境,并選擇WordPress博客網站作為應用示例;數據庫服務器中安裝MySQL數據庫存儲數據。為高效完成各個服務器中的軟件安裝,本示例中將使用寶塔面板安裝并配置各個軟件。如果您熟悉服務器相關操作,也可以自行完成軟件安裝與配置。
如果您的域名需要備案,則需確保輕量應用服務器購買時長大于或等于三個月。
高可用架構集群中,需要保證多臺應用服務器之間的數據同步。由于數據同步操作復雜,本文示例場景中不對多臺應用服務器的數據同步做要求。當您在部署實際業務時,建議自行通過Syncthing文件同步工具或者Rsync與Inotify組合方式,同步多臺服務器之間的數據。
步驟一:創建并配置數據庫服務器C
本示例中,將通過寶塔應用鏡像創建一臺輕量應用服務器,然后通過寶塔面板快速安裝并配置MySQL 5.7。
創建輕量應用服務器,具體操作,請參見創建輕量應用服務器。
該服務器將作為數據庫服務器(
服務器C
)。本示例中服務器配置如下:說明在實際環境作為數據庫服務器時,建議選擇內存相對較高的套餐,以提高服務器的數據處理能力。
實例類型:選擇服務器實例。
地域和可用區:單擊中國頁簽,然后選擇華東1(杭州)。
鏡像:單擊應用鏡像頁簽,然后選擇寶塔Linux面板 7.5.1鏡像。
套餐配置:選擇60元/月的高效云盤套餐。
數據盤:本示例中將不掛載數據盤。
如果您實際業務場景中需要存儲大量的數據,請根據具體需求,指定數據盤容量大小進行掛載。
購買時長:選擇3個月。
如果您的域名還沒有備案,則輕量應用服務器購買時長達到3個月及以上方可申請域名備案。
購買數量:1臺。
在
服務器C
的防火墻中添加防火墻規則,放行MySQL默認占用的3306端口以及寶塔面板占用的8888端口。添加防火墻規則的具體操作,請參見防火墻設置。
成功添加防火墻規則后,如下圖所示。
登錄寶塔面板。
單擊服務器卡片中的實例ID。
單擊應用詳情頁簽,在寶塔面板信息區域復制相關命令,單擊遠程登錄。
在彈出的遠程連接對話框中,單擊立即登錄,粘貼對應的命令獲取外網面板地址、登錄用戶名以及密碼。
說明涉及用戶名以及密碼信息,請您妥善保管,避免造成數據泄露。
在本地物理主機中,通過瀏覽器訪問外網面板地址,然后輸入登錄用戶名以及密碼信息,單擊登錄。
首次登錄寶塔面板,需要在歡迎您使用寶塔面板對話框中,閱讀并同意寶塔的用戶協議,然后單擊進入面板。
進入面板后,寶塔面板會自動彈出推薦安裝套件對話框,
服務器C
作為數據庫服務器只需要MySQL數據庫,因此請直接關閉該對話框。綁定寶塔官網賬號。
寶塔面板必須要綁定寶塔官網賬號后方可正常使用,因此您需要自行注冊寶塔官網賬號并登錄。
安裝MySQL數據庫。
在寶塔面板的左側導航欄,單擊軟件商店。
在應用搜索文本框中,輸入
MySQL
進行搜索。在搜索結果中,找到MySQL,然后在對應的操作列,單擊安裝。
在mysql軟件安裝對話框中,完成配置,然后單擊提交。
具體配置說明如下:
安裝版本:選擇mysql 5.7。
安裝方式:選中極速安裝。
在軟件安裝對話框,單擊確定。
安裝軟件需要一定的時間,您可以在寶塔面板自動彈出的消息盒子中查看軟件安裝的進度。
當消息盒子中提示
當前沒有任務!
時,表示MySQL安裝完畢。
配置MySQL數據庫。
在左側導航欄,單擊數據庫。
在頁面左上角,單擊添加數據庫。
在添加數據庫對話框,完成配置,然后單擊提交。
具體配置說明如下:
數據庫名:自定義名稱。本文示例值為
wptest
。用戶名:用于訪問
wptest
數據庫的用戶名信息。本文示例值為wpuser
。密碼:用于訪問
wptest
數據庫的密碼信息。默認配置了隨機數密碼,建議您自定義密碼信息。本文示例值為WPtest123
。重要涉及用戶名以及密碼信息,請您妥善保管,避免造成數據泄露。
訪問權限:所有人。
重要完全開放的訪問權限不能保證數據安全。在后續創建了應用服務器后,您需要返回數據庫服務器的寶塔面板,將MySQL的訪問權限設置為指定IP,并指定應用服務器對應的內網IP。
其他配置項保持默認配置即可。
數據庫添加成功后,您可以在當前頁面查看到
wptest
數據庫信息。在左側導航欄,單擊安全。
在防火墻區域,放行MySQL默認占用的3306端口。
具體操作說明如下:
在圖中①區域,設置3306端口以及備注,然后單擊放行。
配置成功后,將在圖中②區域,出現3306端口信息。
步驟二:創建并配置應用服務器A
本示例中,將通過寶塔應用鏡像創建一臺輕量應用服務器,然后通過寶塔快速安裝并配置Nginx 1.21、PHP 7.2以及WordPress 5.6。
創建輕量應用服務器,具體操作,請參見創建輕量應用服務器。
該服務器將作為應用服務器(
服務器A
)。本示例中服務器配置如下:實例類型:選擇服務器實例。
地域和可用區:單擊中國頁簽,然后選擇華東1(杭州)。
鏡像:單擊應用鏡像頁簽,然后選擇寶塔Linux面板 7.5.1鏡像。
套餐配置:選擇60元/月的高效云盤套餐。
數據盤:本示例中將不掛載數據盤。
如果您實際業務場景中需要存儲大量的數據,請根據具體需求,指定數據盤容量大小進行掛載。
購買時長:選擇3個月。
如果您的域名還沒有備案,則輕量應用服務器購買時長達到3個月及以上方可申請域名備案。
購買數量:1臺。
在
服務器A
的防火墻中添加防火墻規則,放行寶塔面板占用的8888端口。添加防火墻規則的具體操作,請參見防火墻設置。
在
服務器A
的應用詳情頁簽下獲取寶塔面板的登錄信息,并登錄寶塔面板。具體操作,請參見登錄寶塔面板。。通過寶塔面板,安裝Nginx 1.21以及PHP 7.2。
在寶塔面板的左側導航欄,單擊軟件商店。
在應用搜索文本框中,輸入
Nginx
進行搜索。在搜索結果中,找到Nginx,然后在對應的操作列,單擊安裝。
在nginx軟件安裝對話框中,完成配置,然后單擊提交。
具體配置說明如下:
安裝版本:選擇nginx 1.21。
安裝方式:選中極速安裝。
在軟件安裝對話框,單擊確定。
安裝軟件需要一定的時間,您可以在寶塔面板自動彈出的消息盒子中查看軟件安裝的進度。
當消息盒子中提示
當前沒有任務!
時,表示Nginx安裝完畢。保持安裝Nginx相同的操作方式,搜索
PHP
并選擇安裝PHP 7.2版本。安裝Nginx和PHP后,在軟件商店的應用分類區域,單擊已安裝,即可查看到成功安裝的Nginx 1.21以及PHP 7.2。
通過寶塔面板,一鍵部署WordPress博客網站。
在寶塔面板的左側導航欄,單擊軟件商店。
在應用分類區域,單擊一鍵部署。
在應用搜索文本框中,輸入
WordPress
進行搜索。在搜索結果中,找到WordPress,然后在操作列,單擊一鍵部署。
在寶塔一鍵部署【WordPress】對話框,完成配置,然后單擊提交。
具體配置說明如下:
域名:輸入您的域名以及
服務器A
的公網IP,格式如下所示:example.com 47.96.XX.XX
輸入后,備注、根目錄以及數據庫的默認配置將會自動變更為域名相關信息。
說明此時域名
example.com
不需要做DNS解析以及域名綁定等操作。備注:不建議將域名信息作為備注,建議您手動修改備注信息。例如
wordpresstest
。根目錄:不建議將域名信息作為網站根目錄的名稱,建議您手動修改網站根目錄。例如/www/wwwroot/wordpress。
數據庫:配置信息保持為空。如果有默認配置,請刪除默認配置。
其他配置項保持默認配置。
一鍵部署WordPress后,您可以在左側導航欄,單擊網站,查看處于運行中的WordPress網站信息。
安裝WordPress。
通過本地物理主機的瀏覽器,訪問
服務器A的公網IP地址
。此時,域名example.com還沒有完成DNS解析以及綁定域名的操作,因此您需要通過服務器公網IP訪問WordPress安裝頁面。
選擇WordPress的默認語言后,單擊繼續。
本示例中選擇簡體中文。
單擊現在就開始!。
配置數據庫連接信息,然后單擊提交。
數據庫連接信息即數據庫服務器C中的配置信息,本示例中,具體配置說明如下所述。您在實際操作中,請根據數據庫服務器中真實的信息填寫配置項。
數據庫名:wptest
用戶名:wpuser
密碼:WPtest123
數據庫主機:服務器C的內網IP:3306
表前綴:保持默認配置
單擊現在安裝。
配置WordPress博客網站的信息,然后單擊安裝WordPress。
具體配置說明如下:
站點標題:自定義的WordPress網站標題。例如:wp-HA-test。
用戶名:用于登錄WordPress的用戶名信息。例如:wpadmin。
密碼:用于登錄WordPress的密碼信息,建議您自定義高強度的密碼。例如:WP123!password456。
重要涉及用戶名以及密碼信息,請您妥善保管,避免造成數據泄露。
您的電子郵件:配置后用于接收WordPress網站的相關郵件。例如:
username@example.com
。
在成功!頁面,單擊登錄,然后使用已配置好的登錄信息(用戶名與密碼)登錄WordPress。
成功登錄后,WordPress儀表盤界面類似如下圖所示。
步驟三:通過自定義鏡像創建應用服務器B
您可以通過輕量應用服務器的自定義鏡像功能,快速創建與應用服務器A相同配置的應用服務器B。
為
服務器A
創建快照。具體操作,請參見創建快照。為
服務器A
創建自定義鏡像。具體操作,請參見創建自定義鏡像。通過自定義鏡像創建應用服務器B。具體操作,請參見使用自定義鏡像創建服務器。
在創建應用服務器B時您需要注意,除鏡像配置為自定義鏡像之外,其他配置項需要與創建應用服務器A時的配置保持完全一致。
在
服務器B
的防火墻中添加防火墻規則,放行寶塔面板占用的8888端口。添加防火墻規則的具體操作,請參見防火墻設置。
配置應用服務器B的網站信息。
當應用服務器B創建完成后,如果您直接訪問服務器B的公網IP,將會出現如下圖所示的報錯信息:造成該問題的原因是因為在寶塔面板中,網站對應的域名設置仍然為應用服務器A的公網IP,因此,您需要登錄寶塔面板將應用服務器B的公網IP添加至域名配置項中。
登錄
服務器B
對應的寶塔面板。登錄
服務器B
寶塔面板所需的用戶名和密碼,與服務器A
寶塔面板的登錄信息一致,但您需要注意,寶塔面板的登錄地址有所不同,例如:服務器A
寶塔面板的登錄地址為http://服務器A公網IP:8888/db08****
。對應的
服務器B
寶塔面板的登錄地址為http://服務器B公網IP:8888/db08****
。
登錄寶塔面板后,在左側導航欄,單擊面板設置。
找到服務器IP配置項,在對應的文本框中輸入
服務器B公網IP
,然后單擊頁面底部的保存。在左側導航欄,單擊網站。
找到網站名為
服務器A公網IP或者綁定的域名
的網站,在操作列,單擊設置。在站點修改頁面的左側導航欄,單擊域名管理。
在文本框中輸入
服務器B公網IP
,然后單擊添加。添加成功后,如下圖所示:
在本地物理主機的瀏覽器中,測試訪問
服務器B公網IP
。如下圖所示,可以成功訪問WordPress博客網站。
步驟四:修改數據庫服務器中數據庫的權限
當前已成功創建兩臺應用服務器(服務器A
與服務器B
),為確保應用服務器與數據庫服務器進行數據傳輸時的安全性,建議您將數據庫服務器C中的MySQL訪問權限,由所有人修改指定IP,并指向兩臺應用服務器的內網IP。
登錄數據庫服務器C對應的寶塔面板。具體操作,請參見登錄寶塔面板。。
登錄寶塔面板后,在左側導航欄,單擊數據庫。
找到
wptest
數據庫,在操作列單擊權限。在設置數據庫權限對話框的訪問權限列表中,選擇指定IP,然后在新增的文本框中,輸入服務器A以及服務器B的內網IP。
同地域下的多臺輕量應用服務器之間可以通過內網互通,相較于公網訪問的方式,內網訪問更加高效穩定。輸入多個內網IP時,需要使用英文半角逗號(,)間隔。格式為
172.27.XX.XX,172.27.XX.XX
。單擊提交。
步驟五:創建輕量應用負載均衡并添加后端實例
創建輕量應用負載均衡。具體操作,請參見創建輕量應用負載均衡。
本示例中,具體配置說明如下:
實例類型:選擇負載均衡實例。
地域和可用區:選擇華東1(杭州)。
套餐配置:60元/月。
購買時長:選擇3個月。
添加后端實例。具體操作,請參見添加后端實例。
本示例中,將應用服務器A與應用服務器B添加為后端實例,且健康檢查狀態為健康。
步驟六:解析并綁定域名
如果您需要通過輕量應用負載均衡實現公網訪問流量分發等功能,必須先為負載均衡綁定域名。
步驟七:測試訪問WordPress博客網站
正常測試訪問WordPress博客網站
在本地物理主機,通過瀏覽器訪問域名
example.com
。如下圖所示,成功訪問到WordPress博客首頁,表示高可用架構應用集群部署完成。模擬
服務器A
宕機,測試訪問WordPress博客網站通過輕量應用服務器管理控制臺,手動停止
服務器A
。手動停止服務器以模擬服務器宕機。如下圖所示,
服務器A
已處于已停機狀態。查看輕量應用負載均衡的后端實例狀態。
如下圖所示,已停止的
服務器A
健康檢查狀態為不健康,正常運行的服務器B
健康檢查狀態為健康。在本地物理主機,通過瀏覽器訪問域名
example.com
。如下圖所示,成功訪問到WordPress博客首頁,表示高可用架構在生效,此時訪問的網站屬于健康狀態的
服務器B
。