1. 程式人生 > >企業實戰(4)-實現基於Haproxy負載均衡集群的電子商務網站架構

企業實戰(4)-實現基於Haproxy負載均衡集群的電子商務網站架構

haproxy keepalived

企業實戰:逐步實現企業各種情景下的需求


企業情景四:

隨著公司業務的發展,公司負載均衡服務已經實現四層負載均衡,但業務的復雜程度提升,公司要求把mobile手機站點作為單獨的服務提供,不在和pc站點一起提供服務,此時需要做7層規則負載均衡,運維總監要求,能否用一種服務同既能實現七層負載均衡,又能實現四層負載均衡,並且性能高效,配置管理容易,而且還是開源。


情景說明:在企業生產環境中,每天會有很多的需求變更,比如增加服務器、新業務上線、url路由修改、域名配置等等,對於前端負載均衡設備來說,容易維護,復雜度低,是首選指標。在企業中,穩定壓倒一切,與其搞得很復雜,經常出問題,不如做的簡單和穩定。在企業中,90%以上的故障,來源於需求變更。可能是程序bug,也可能是人為故障,也可能是架構設計問題等等。前端負載均衡設備為重中之重,在軟件選型上一定充分考慮,能滿足業務的前提下,盡可能降低復雜度,提高易維護性。


項目四:實現基於Haproxy+Keepalived負載均衡高可用架構:

一、環境準備:

centos系統服務器4臺、兩臺用於做haproxy主從架構,兩臺作為後端server,服務器配置好yum源、 防火墻關閉、各節點時鐘服務同步、各節點之間可以通過主機名互相通信

二、安裝步驟:

1 、iptables -F && setenforing 清空防火墻策略,關閉selinux

2 、拿兩臺服務器都使用yum 方式安裝haproxy、keepalived服務

3 、後端服務器配置好基於LNMP 架構的web服務

三、修改配置文件:

1 .修改/etc/keepalived/keepalived.conf 配置文件內容

2 、對glob 段進行定義,添加管理員郵箱等

3 、對vrrp_instance 進行配置,配置一主一從,定義一個基於虛擬IP 的實例

4 、修改主haproxy 配置文件,定義全局配置,配置日誌、啟動用戶、pid 文件等。

5 、修改主haproxy 配置文件,定義默認配置,配置常用基本選項以及超時時間等。

6 、定義一個統計頁面,並能通過用戶名和密碼進行登錄。

7 、配置一個frontend ,並關聯到後端backend webserver 。

8 、配置後端backend webserver ,添加兩臺web 服務,並配置健康狀態監測。

9 、配置主haproxy 完成後,同步配置到從haproxy ,並啟動所有服務。


配置haproxy配置文件:(註意主從一致)

vim /etc/haproxy/haproxy.cfg 
listen stats #定義一個統計報告服務
mode http #基於http協議
bind 0.0.0.0:1080 #監聽1080端口
stats enable #開啟統計報告服務
#stats hide-version #隱藏統計報告版本信息
stats uri /hastats #統計報告訪問url
#stats realm Haproxy\ Statistics #頁面登陸信息
stats auth admin:admin #驗證賬號的信息(用戶+密碼)
stats admin if TRUE #驗證模式
frontend web
bind    0.0.0.0:80
default_backend  lnmp-server
#frontend  main *:5000
#    acl url_static       path_beg       -i /static /images /javascript /styl
esheets
#    acl url_static       path_end       -i .jpg .gif .png .css .js
#
#    use_backend static          if url_static
#    default_backend             app
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend lnmp-server
   balance     roundrobin
   option      httpchk GET /index.html
   server      lnmpserver1 172.17.250.45:80  check inter 3000 rise 3 fall 5    #後端server,實現了LNMP的電子商務網站
   server      lnmpserver2 172.17.252.87:80  check inter 3000 rise 3 fall 5


配置keepalived配置文件(註意從服務器配置的同步)

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
    # [email protected]
    # [email protected]
    # [email protected]
    root@localhost
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id KEEPALIVE_Haproxy
}


vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 13
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.17.252.110
    }


配置完成。

訪問配置的狀態頁面http://hostname:1080/hastats

如圖:

技術分享圖片


企業實戰(4)-實現基於Haproxy負載均衡集群的電子商務網站架構