1. 程式人生 > >haproxy實現負載均衡

haproxy實現負載均衡

開啟 desc weight cfg div 狀態信息 編譯 col 編譯安裝

環境準備:
10.0.0.7 web01
10.0.0.8 web02
10.0.0.3  haproxy
centOS 7
1)安裝常用軟件
yum install -y gcc glibc gcc-c++ screen

2)下載haproxy軟件

http://www.haproxy.org/download/1.7/src/haproxy-1.7.10.tar.gz

由於http://www.haproxy.org在國內被屏蔽,只能通過其他方式獲取軟件

3)將軟件上傳到相應目錄,進行解壓,源碼編譯安裝haproxy

[root@lib01 ~]# cd /usr/local/src
[root@lib01 src]# 
tar zxf haproxy-1.7.10.tar.gz [root@lib01 src]# cd haproxy-1.7.10 [root@lib01 haproxy-1.7.10]# make TARGET=linux3100 PREFIX=/usr/local/haproxy-1.7.10 [root@lib01 haproxy-1.7.10]# make install [root@lib01 haproxy-1.7.10]# cp /usr/local/sbin/haproxy /usr/sbin/
通過 haproxy -v,我們可以看到haproxy的版本號
[root@lib02 ~]# haproxy -v
HA
-Proxy version 1.7.10-a7dcc3b 2018/01/02 Copyright 2000-2018 Willy Tarreau <[email protected]>

4)創建haproxy用戶及配置文件目錄

[root@lib01 haproxy-1.7.10]# useradd -r haproxy
[root@lib01 haproxy-1.7.10]# mkdir /etc/haproxy
[root@lib01 haproxy-1.7.10]# mkdir /var/lib/haproxy
[root@lib01 haproxy-1.7.10]# mkdir /var/run/haproxy

5)編輯啟動腳本

[root@lib01 haproxy-1.7.10]# cp examples/haproxy.init /etc/init.d/haproxy
[root@lib01 haproxy-1.7.10]# chmod 755 /etc/init.d/haproxy

6)編輯配置文件/etc/haproxy/haproxy.cfg

vim /etc/haproxy/haproxy.cfg

global
log 127.0.0.1 local3 info
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000

frontend www.desc.com
mode http
bind *:80
stats uri /haproxy?stats
default_backend www.desc.com

backend www.desc.com
option httpchk GET /index.html
balance roundrobin
server web01 10.0.0.7:80 check inter 2000 rise 3 fall 3 weight 1
server web02 10.0.0.8:80 check inter 2000 rise 3 fall 3 weight 2

啟動服務

[root@lib01 haproxy-1.7.10]# /etc/init.d/haproxy start
Starting haproxy (via systemctl):                          [  OK  ]

通過web界面,查看狀態信息

http://10.0.0.3/haproxy?stats

技術分享圖片

7)開啟日誌

vim /etc/rsyslog.conf

$ModLoad imudp #取消註釋
$UDPServerRun 514 #取消註釋
local3.* /var/log/haproxy.log #最後一行添加local3的路徑

[root@lib01 haproxy-1.7.10]# systemctl restart rsyslog.service
[root@lib01 haproxy-1.7.10]# touch /var/log/haproxy.log
[root@lib01 haproxy-1.7.10]# chown -R haproxy.haproxy /var/log/haproxy.log
[root@lib01 haproxy-1.7.10]# /etc/init.d/haproxy restart
Restarting haproxy (via systemctl): [ OK ]

通過監控日誌,可以看到haproxy已經啟動成功

[root@lib01 haproxy-1.7.10]# tailf /var/log/haproxy.log 
Dec 10 09:37:39 localhost haproxy[1660]: Stopping frontend www.desc.com in 0 ms.
Dec 10 09:37:39 localhost haproxy[1660]: Stopping backend www.desc.com in 0 ms.
Dec 10 09:37:39 localhost haproxy[1660]: Proxy www.desc.com stopped (FE: 0 conns, BE: 0 conns).
Dec 10 09:37:39 localhost haproxy[1660]: Proxy www.desc.com stopped (FE: 0 conns, BE: 0 conns).
Dec 10 09:37:39 localhost haproxy[1692]: Proxy www.desc.com started.
Dec 10 09:37:39 localhost haproxy[1692]: Proxy www.desc.com started.

通過測試,我們可以看到自動切換

技術分享圖片

技術分享圖片

到此,web的負載均衡配置完成!



haproxy實現負載均衡