企業實戰:逐步實現企業各類情景下的需求javascript
企業情景四:css
隨着公司業務的發展,公司負載均衡服務已經實現四層負載均衡,但業務的複雜程度提高,公司要求把mobile手機站點做爲單獨的服務提供,不在和pc站點一塊兒提供服務,此時須要作7層規則負載均衡,運維總監要求,可否用一種服務同既能實現七層負載均衡,又能實現四層負載均衡,而且性能高效,配置管理容易,並且仍是開源。html
情景說明:在企業生產環境中,天天會有不少的需求變動,好比增長服務器、新業務上線、url路由修改、域名配置等等,對於前端負載均衡設備來講,容易維護,複雜度低,是首選指標。在企業中,穩定壓倒一切,與其搞得很複雜,常常出問題,不如作的簡單和穩定。在企業中,90%以上的故障,來源於需求變動。多是程序bug,也多是人爲故障,也多是架構設計問題等等。前端負載均衡設備爲重中之重,在軟件選型上必定充分考慮,能知足業務的前提下,儘量下降複雜度,提升易維護性。前端
項目四:實現基於Haproxy+Keepalived負載均衡高可用架構:java
1、環境準備:linux
centos系統服務器4臺、兩臺用於作haproxy主從架構,兩臺做爲後端server,服務器配置好yum源、 防火牆關閉、各節點時鐘服務同步、各節點之間能夠經過主機名互相通訊web
2、安裝步驟:vim
1 、iptables -F && setenforing 清空防火牆策略,關閉selinux後端
2 、拿兩臺服務器都使用yum 方式安裝haproxy、keepalived服務centos
3 、後端服務器配置好基於LNMP 架構的web服務
3、修改配置文件:
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 { # acassen@firewall.loc # failover@firewall.loc # sysadmin@firewall.loc root@localhost } notification_email_from root@magedu.com 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
如圖: