haproxy的安装及各类配置

1. 源码编译安装haproxy 2.x,配置服务启动脚本。
2. 配置haproxy日志。
3. 配置haproxy实现web服务器负载均衡。
 


1. 源码编译安装haproxy 2.x,配置服务启动脚本。

1.1 源码编译安装前需要处理LUA依赖问题

1.下载lua安装包
#curl -R -O http://www.lua.org/ftp/lua-5.4.3.tar.gz
2.安装相关依赖包
#yum install gcc gcc-c++ make -y
3.解压
#tar zxf lua-5.4.3.tar.gz  -C /usr/local/src/
#cd /usr/local/src/lua-5.4.3/
#make linux test
4.由于与默认版本不一致,故将默认的/usr/bin/lua拷贝至/src/lua。lua版本升级。
#cp src/lua  /usr/bin/lua

1.2 下载haproxy包并解压

[root@lvs1 ~]# wget -c https://repo.huaweicloud.com/haproxy/2.4/src/haproxy-2.4.8.tar.gz
[root@lvs1 ~]# tar xf haproxy-2.4.8.tar.gz  -C /usr/local/src/
[root@lvs1 ~]# cd /usr/local/src/haproxy-2.4.8/
[root@lvs1 ~]#yum -y install gcc openssl-devel pcre-devel systemd-devel

1.3 编译安装,指定路径并创建软连接。

[root@lvs1 haproxy-2.4.8]# make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_LUA=1 LUA_INC=/usr/local/src/lua-5.4.3/src/ LUA_LIB=/usr/local/src/lua-5.4.3/src/
指定安装路径:
[root@lvs1 haproxy-2.4.8]# make install PREFIX=/usr/local/haproxy
创建软连接:
[root@lvs1 haproxy-2.4.8]# ln -sv /usr/local/haproxy/sbin/haproxy  /usr/sbin/haproxy
‘/usr/sbin/haproxy’ -> ‘/usr/local/haproxy/sbin/haproxy’
[root@lvs1 haproxy-2.4.8]# ll /usr/sbin/haproxy
lrwxrwxrwx. 1 root root 31 Jan 12 11:36 /usr/sbin/haproxy -> /usr/local/haproxy/sbin/haproxy

1.4 haproxy 启动脚本配置

[root@lvs1 ~]# vim /usr/lib/systemd/system/haproxy.service
[unit]
Description=HAProxy Load Balancer
After=syslog.target network.target

[Service]
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p  /usr/local/haproxy/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target
[root@lvs1 ~]# systemctl daemon-reload

 1.5提供启动配置

[root@lvs1 ~]# mkdir /etc/haproxy
[root@lvs1 ~]# vim /etc/haproxy/haproxy.cfg

global
    maxconn  10000
	chroot  /usr/local/haproxy
	stats socket  /var/run/haproxy.state mode 600 level admin
	log  127.0.0.1 local0
	user  haproxy 
	group  haproxy
	daemon
	pidfile /var/run/haproxy/haproxy.pid
  

defaults  
	option httplog
	log global 
	maxconn 100000
	mode http 
	timeout connect 300000ms 
	timeout client   300000ms
	timeout server   300000ms
    timeout http-keep-alive 20000ms
    timeout queue 15s
    timeout tunnel 4h
listen stats         
	mode http 
    log 127.0.0.1 local0 err
	bind 0.0.0.0:1088        
	stats enable         
	log global 
    stats uri /haproxy-status 
    stats auth luadmid:123456

listen app1
	bind :80
	server web1 192.168.150.12:80
	server web2 192.168.150.13:80

1.6 创建用户

[root@lvs1 ~]# useradd -r -s /sbin/nologin -d    /usr/local/haproxy/ haproxy
[root@lvs1 ~]# systemctl start haproxy.service

1.7 安装WEB服务器

LVS2:
[root@lvs2 ~]# yum install httpd -y
[root@lvs2 ~]# echo "web1 test page, ip :192.168.150.12." > /var/www/html/index.html
[root@lvs2 ~]# systemctl start httpd

LVS3:
[root@lvs3 ~]# yum install httpd -y
[root@lvs3 ~]# echo "web2 test page, ip :192.168.150.13." > /var/www/html/index.html
[root@lvs3 ~]# systemctl start httpd

之后再起第四台服务器进行测试即可。


2. 配置haproxy日志。

2.1 修改haproxy配置:

[root@lvs1 ~]# vim /etc/haproxy/haproxy.cfg
global
    maxconn  10000
	chroot  /usr/local/haproxy
	stats socket  /var/run/haproxy.state mode 600 level admin
	log  127.0.0.1 local2 info
	user  haproxy 
	group  haproxy
	daemon
	pidfile /var/run/haproxy/haproxy.pid
  

defaults  
	option httplog
	log global 
	maxconn 100000
	mode http 
	timeout connect 300000ms 
	timeout client   300000ms
	timeout server   300000ms
    timeout http-keep-alive 20000ms
    timeout queue 15s
    timeout tunnel 4h
listen stats         
	mode http 
    log 127.0.0.1 local2 err
	bind 0.0.0.0:1088        
	stats enable         
	log global 
    stats uri /haproxy-status 
    stats auth luadmid:123456

listen app1
	bind :80
	server web1 192.168.150.12:80
	server web2 192.168.150.13:80
	
listen web_port 
	bind 192.168.150.11:80 
	mode http
	log global 
	balance roundrobin
	server web1 127.0.0.1:8080  check inter 3000 fall 2 rise 5

2.2修改rsyslog.conf配置:

#vim /etc/rsyslog.conf   #去掉以下两列注释:
$ModLoad imudp 
$UDPServerRun 514  

在添加如下内容:
# Save haproxy messages also to haproxy.log 
local2.*        /var/log/haproxy.log  

2.3启动服务:

#systemctl restart haproxy.service  rsyslog

2.4查看生成的日志:

# tail /var/log/haproxy.log

之后再起第四台服务器进行测试即可。


3. 配置haproxy实现web服务器负载均衡。

frontend+backend配置实例

frontend web1
        bind :88
        log global
        mode tcp
        use_backend webserver1

backend webserver1
        mode tcp
        default-server inter 1000 weight 3
        server app1 192.168.150.12:80 check
        server app2 192.168.150.13:80 check

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值