一、实验环境

 主机:四台 CentOS7系统的虚拟机,node1(192.168.27.7),node2(192.168.27.17),VIP(192.168.27.100),web1(192.168.27.27),web2(192.168.27.37)

 软件:haproxy-1.8.20.tar.gz,keepalived(光盘yum源),httpd(光盘yum源)

二、实验步骤

1、安装haproxy

 两台主机都源码安装haproxy-1.8.20.tar.gz,都两台主机操作一样,以下为node1的操作

[root@node1 ~]# ll haproxy-1.8.20.tar.gz 
-rw-r--r-- 1 root root 2083917 Jan 10 20:39 haproxy-1.8.20.tar.gz
#安装依赖包
[root@node1 ~]# yum install -y gcc gcc-c++ pcre pcre-devel openssl openssl-devel systemd-devel
#开始编译安装
[root@node1 ~]# tar xf haproxy-1.8.20.tar.gz 
[root@node1 ~]# cd haproxy-1.8.20/
[root@node1 haproxy-1.8.20]# make ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 PREFIX=/usr/local/haproxy
[root@node1 haproxy-1.8.20]# make install PREFIX=/usr/local/haproxy
[root@node1 haproxy-1.8.20]# cp haproxy /usr/sbin/
#准备启动文件
[root@node1 haproxy-1.8.20]# 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/run/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target
#创建用户与配置文件
[root@node1 haproxy-1.8.20]# useradd -r -s  /sbin/nologin haproxy
[root@node1 haproxy-1.8.20]# mkdir /etc/haproxy
[root@node1 haproxy-1.8.20]# mkdir /usr/local/haproxy/run
[root@node1 haproxy-1.8.20]# mkdir /var/lib/haproxy
[root@node1 haproxy-1.8.20]# chown -R haproxy:haproxy /var/lib/haproxy/
[root@node1 haproxy-1.8.20]# vim /etc/haproxy/haproxy.cfg
[root@node1 haproxy-1.8.20]# cat /etc/haproxy/haproxy.cfg 
global
maxconn 100000
chroot /usr/local/haproxy
#stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
#uid 981
#gid 981
user haproxy
group haproxy
daemon
#nbproc 4
#cpu-map 1 0
#cpu-map 2 1
#cpu-map 3 2
#cpu-map 4 3
pidfile /usr/local/haproxy/run/haproxy.pid
log 127.0.0.1 local3 info

defaults
option http-keep-alive
option  forwardfor
maxconn 100000
mode http
timeout connect 300000ms
timeout client  300000ms
timeout server  300000ms

listen stats
 mode http
 bind 192.168.27.7:9999
 stats enable
 log global
 stats uri     /haproxy-status
 stats auth    haadmin:q1w2e3r4ys

listen  web_port
 bind 192.168.27.100:80    #此处为VIP
 mode http
 log global
 server web1  192.168.27.27:80  check inter 3000 fall 2 rise 5    #后端服务器
 server web1  192.168.27.37:80  check inter 3000 fall 2 rise 5    #后端服务器
haproxy.cfg

相关文章: