haproxy負載均衡記錄

haproxy的安裝很簡單,可是前提是你的linux有gcc環境,簡單記錄一下mysql

wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz
tar zxvf haproxy-1.4.8.tar.gz
cd haproxy-1.4.8
make TARGET=linux26 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy

這裏要注意的是本身的linux版本,使用uname -a命令能夠查看linux

安裝好以後的路徑是在web

/usr/local/haproxy

接下來是配置文件redis

  

global
       log 127.0.0.1 local0
       maxconn 4096
       user root
       group root
       daemon

defaults
       log global
       mode tcp
       option tcplog
       option dontlognull
       retries 3
       option redispatch
       maxconn 2000
       contimeout 4000
       clitimeout 50000
       srvtimeout 30000
       stats enable
       stats scope .

frontend mysql_cluster
       bind *:3306
       default_backend mysql_cluster_back

backend mysql_cluster_back
       mode tcp
       option tcpka
       option mysql-check
       balance roundrobin
       server db01_1.1.1.1 192.168.50.1:3306 weight 1 check port 3306 
       server db02_2.2.2.2 192.168.50.130:3306 weight 100 check port 3306


listen stats 0.0.0.0:8899
       mode http
       option httpclose
       balance roundrobin
       stats uri /admin-status
       stats realm Haproxy\ Statistics
       stats auth admin:admin

 這是一個簡單的配置文件,global和defaults基本均可以不變,重要的是frontend 和backend
sql

 關於frontend,我是這樣理解的,至關於聲明瞭一個名爲:mysql_cluster的函數,這個函數監聽了運行haproxy機器的3306端口,而後將這個端口的請求交給了backend名爲mysql_cluster_back的模塊來處理,這裏要申明代理的協議tcp,我這裏是須要作mysql的集羣,因此是tcp,若是是webserver的集羣,那麼能夠寫成httpshell

balance 是負載均衡的策略,對應的策略能夠google數據庫

 server db01_1.1.1.1 192.168.50.1:3306 weight 1 check port 3306 
 server db02_2.2.2.2 192.168.50.130:3306 weight 100 check port 3306

這兩句是定義實際的mysql服務器信息,我這邊是兩臺,能夠定義權重,check port 3306是對兩臺服務器mysql的端口進行健康檢查,還有其餘參數,不詳解。瀏覽器

listen stats 0.0.0.0:8899
       mode http
       option httpclose
       balance roundrobin
       stats uri /admin-status
       stats realm Haproxy\ Statistics
       stats auth admin:admin

這個模塊主要是定義了haproxy的一個監控界面信息,綁定8899端口,經過瀏覽器能夠訪問haproxy的監控界面服務器

在上面兩臺機器上開啓mysql服務,而後在本機保存配置文件到安裝目錄下負載均衡

haproxy的執行命令是


/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg

而後能夠在瀏覽器中輸入:

http://192.168.50.129:8899/admin-status

查看機器狀況,若是一切正常,則都是綠色

這個時候,鏈接mysql節點

mysql -h192.168.50.129 -utest-ptest -P3306

注意兩個真實的mysql服務器必須具備相同的用戶名和密碼,才能達到負載均衡的效果

而後你會發現,haproxy會輪的在兩臺真實服務器之間轉換,注意192.168.50.129 這臺機器並無安裝mysql


總得來講,haproxy能夠對http以及tcp請求進行反向代理和負載均衡,對於webserver、數據庫均可以用很低的代價實現最大的效果,可是實際的生產環境中,要負載不少,能夠和keepalived一塊兒使用,使用虛擬ip的方式,來避免單點故障。

相關文章
相關標籤/搜索