本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
哈代理 AWS OpsWorks 堆疊圖層
注意
此 layer 僅適用於 Chef 11 或更舊的 Linux 類型堆疊。
AWS OpsWorks 堆疊 HAProxy 層是一個 AWS OpsWorks 堆疊層,可為裝載 HAProxy
注意
堆疊會限制在單一區域。若要將您的應用程式分散至多個區域,您必須為每個區域分別建立堆疊。
建立哈代理圖層的步驟
-
在導覽窗格中,按一下 Layers (Layer)。
-
在 Layers (Layer) 頁面上,按一下 Add a Layer (新增 Layer) 或 + Layer (+Layer)。針對 Layer type (Layer 類型),選取 HAProxy。
layer 具有下列組態設定,所有設定皆為選擇性。
- HAProxy statistics (HAProxy 統計)
-
layer 是否會收集及顯示統計。預設值為 Yes (是)。
- Statistics URL (統計 URL)
-
統計頁面的 URL 路徑。完整的網址是 HTTP://
DNNAME
是相關執行個體的StatisticsPath
,其中 DNNAMEDNS 名稱
。默認StatisticsPath
值是/哈代理? 統計數據,這對應於類似於以下內容:http://ec2-54-245-151-7.us-west-2.compute.amazonaws.com/haproxy?stats。 - Statistics user name (統計使用者名稱)
-
統計資料頁面的使用者名稱,您必須提供此名稱,才能檢視統計資料頁面。默認值是「操作」。
- Statistics password (統計密碼)
-
統計頁面的密碼,您必須提供此密碼才能檢視統計頁面。預設值為隨機產生的字串。
- Health check URL (運作狀態檢查 URL)
-
運作狀態檢查 URL 前綴。HAProxy 使用此 URL 在每個應用程式伺服器執行個體上定期呼叫 HTTP 方法,以判斷執行個體是否正常運作。若運作狀態檢查失敗,HAProxy 會停止將流量路由至執行個體,直到其透過手動方式或自動修復重新啟動。URL 前綴的預設值為 "/",其對應到伺服器執行個體的首頁:http://
DNSName
/。 - Health check method (運作狀態檢查方法)
-
用於檢查執行個體是否正常運作的 HTTP 方法。預設值為 OPTIONS,您也可以指定 GET 或 HEAD。如需詳細資訊,請參閱 httpchk
。 - 自訂安全群組
-
如果您選擇不自動將內建「 AWS OpsWorks 堆疊」安全性群組與圖層建立關聯,就會顯示此設定。您必須指定要和 layer 關聯的安全群組有哪些。請確認群組具備正確的設定,可允許 layer 之間的流量。如需詳細資訊,請參閱 建立新的堆疊。
![](images/add_layer_haproxy.png)
注意
記錄密碼以供日後使用;「 AWS OpsWorks 堆疊」不允許您在建立圖層後檢視密碼。但是,您可以透過前往 layer 的 Edit (編輯) 頁面,然後按一下 General Settings (一般設定) 標籤上的 Update password (更新密碼) 來更新密碼。
![](images/haproxy_update_password.png)
哈代理層的工作原理
根據預設,HAProxy 會執行下列作業:
-
接聽 HTTP 和 HTTPS 連接埠的請求。
您可以透過覆寫 Chef 組態範本 (
haproxy.cfg.erb
) 來設定 HAProxy 僅接聽 HTTP 或 HTTPS 連接埠。 -
將傳入流量路由至任何身為應用程式伺服器 layer 成員的執行個體。
根據預設, AWS OpsWorks 堆疊會設定 HAProxy,將流量分配給任何應用程式伺服器層成員的執行個體。例如,您可以使用 Rails 應用程序服務器和 PHP 應用程序服務器層的堆棧,並且 HAProxy 主服務器將流量分配給兩個層中的實例。您可以透過使用自訂配方,來設定預設路由。
-
路由流量至多個可用區域
若其中一個可用區域停機,負載平衡器會將傳入流量路由至其他區域內的執行個體,讓您的應用程式可繼續運作,而無須中斷。因此,建議的做法為將您的應用程式伺服器分散至多個可用區域。
-
定期在每個應用程式伺服器執行個體上執行指定的運作狀態檢查方法,以評估其運作狀態。
如果方法未在指定的逾時期間內傳回,則會假定執行個體失敗,而 HAProxy 會停止將要求路由傳送至執行個體。 AWS OpsWorks 堆疊也提供了一種自動取代失敗執行個體的方法。如需詳細資訊,請參閱 使用自動修復。您可以在您建立 layer 時變更運作狀態檢查方法。
-
收集統計並選擇性的將他們顯示在網頁上。
重要
若要使運作狀態檢查搭配預設的 OPTIONS 方法正常運作,您的應用程式必須傳回 2xx 或 3xx 狀態碼。
根據預設,當您將執行個體新增至 HAProxy 層時, AWS OpsWorks Stacks 會為其指派彈性 IP 位址來代表應用程式,該應用程式對全世界都是公開的。由於 HAProxy 執行個體的彈性 IP 位址是應用程式唯一公開公開的 URL,因此您不需要為基礎應用程式伺服器執行個體建立和管理公用網域名稱。您可以透過前往執行個體頁面,檢查執行個體的公有 IP 地址來取得地址,如下圖所示。後方跟隨 (EIP) 的地址即為彈性 IP 地址。如需彈性 IP 地址的詳細資訊,請參閱彈性 IP 地址 (EIP)。
![](images/load_balancer_elastic_ip.png)
當您停止 HAProxy 執行個體時, AWS OpsWorks Stack 會保留彈性 IP 位址,並在您重新啟動時將其重新指派給執行個體。如果您刪除 HAProxy 執行個體,根據預設, AWS OpsWorks 堆疊會刪除執行個體的 IP 位址。若要保留地址,請清除 Delete instance's Elastic IP (刪除執行個體的彈性 IP) 選項,如下圖所示。
![](images/delete_lb.png)
此選項會影響您將新的執行個體新增至 layer 以取代遭刪除執行個體時會發生的情況。
-
如果您保留已刪除執行個體的彈性 IP 位址, AWS OpsWorks Stacks 會將該位址指派給新執行個體。
-
否則, AWS OpsWorks Stacks 會為執行個體指派新的彈性 IP 位址,您必須更新 DNS 註冊商設定,以對應至新位址。
當應用程式伺服器執行個體上線或離線時 (無論是手動還是由於自動調整規模或 auto 動修復),必須更新負載平衡器組態,才能將流量路由到目前的線上執行個體集。此任務會由 layer 的內建配方自動處理:
-
當新執行個體上線時, AWS OpsWorks Stack 會觸發設定生命週期事件。HAProxy 層的內建配置方法會更新負載平衡器組態,以便將要求散發給任何新的應用程式伺服器執行個體。
-
當執行個體離線或執行個體未通過健康狀態檢查時, AWS OpsWorks Stack 也會觸發設定生命週期事件。HAProxy 設定配方會更新負載平衡器的組態,只將流量路由至剩餘的線上執行個體。
最後,您也可以將自訂網域與 HAProxy 圖層搭配使用。如需詳細資訊,請參閱 使用自訂網域。
統計頁面
如果您已啟用統計值頁面,HAProxy 會在指定的 URL 顯示包含各種測量結果的頁面。
檢視 HA代理伺服器統計值
-
從執行個體的 [詳細資料] 頁面取得 HAProxy 執行個體的公用 DNS 名稱,然後複製它。
-
在「圖層」頁面上,按一下 HAProxy 以開啟圖層的詳細資料頁面。
-
從層詳細資料取得統計資料 URL,並將其附加至公用 DNS 名稱。例如:
http://ec2-54-245-102-172.us-west-2.compute.amazonaws.com/haproxy?stats
. 至它。 -
將先前步驟中的 URL 在您的瀏覽器中貼上,然後使用您在建立 layer 時指定的使用者名稱及密碼以開啟統計頁面。