环境准备
主机规划
服务器 | IP | 主机名 | 服务 |
---|---|---|---|
centos7x2(haproxy01) | 192.168.138.132 | centos7x2 | Haproxy、Nginx、keepalived |
centos7x3(haproxy02) | 192.168.138.133 | centos7x3 | Haproxy、Nginx、keepalived |
192.168.138.200(vip) |
其中haproxy负责负债均衡,nginx单纯作为web服务
hosts文件解析
[root@centos7x2 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.138.132 centos7x2
192.168.138.133 centos7x3
操作系统
centos7.7
[root@centos7x2 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@centos7x2 ~]# uname -a
Linux centos7x2 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
系统环境
关闭selinux
sed -i '7s#enforcing#disabled#g' /etc/selinux/config
setenforce 0
关闭iptables
systemctl stop firewalld.service
systemctl disable firewalld.service
安装基本包
yum -y install net-tools vim lrzsz tree screen lsof tcpdump nc mtr nmap gcc glibc gcc-c++
软件版本
haproxy:1.5.18
nginx:1.18.0
keepalived:1.3.5
安装HAProxy
安装haproxy和其他软件类似,基本上也分为源码安装和yum安装,采用yu’m安装得版本可能稍微比较旧,在CentOS7系统下一般为1.5版本。这两个方式本身区别并不太大,但是安装目录会有一定得出入,在配置程序得时候需要稍微注意。
这里的安装均采用yum方式,编译安装就不细说,两者任选其一均可
yum安装
[root@centos7x3 ~]# yum install -y haproxy
[root@centos7x2 ~]# haproxy -v
HA-Proxy version 1.5.18 2016/05/10
Copyright 2000-2016 Willy Tarreau <willy@haproxy.org>
配置rsyslog
[root@centos7x3 ~]# mkdir /var/log/haproxy
[root@centos7x3 ~]# chmod a+w /var/log/haproxy/
[root@centos7x3 ~]# vim /etc/rsyslog.conf
#将如下两行得注释取消
$ModLoad imudp
$UDPServerRun 514
#在该文件添加如下内容:
# Save haproxy log
local3.* /var/log/haproxy/haproxy.log
[root@centos7x3 ~]# vim /etc/sysconfig/rsyslog
[root@centos7x3 ~]# cat /etc/sysconfig/rsyslog
# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
#SYSLOGD_OPTIONS=""
SYSLOGD_OPTIONS="-r -m 0 -c 2"
#-c 2 使用兼容模式,默认是-c 5; -r 开启远程日志; -m 0 标记时间戳。单位是分钟,为0时,表示禁用该功能。
[root@centos7x3 ~]# systemctl restart rsyslog
配置haproxy
- 第一台机器的haproxy配置,/etc/haproxy/haproxy.cfg
global
maxconn 10000
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
nbproc 1
pidfile /var/lib/haproxy/haproxy.pid
log 127.0.0.1 local3 info
defaults
mode http
log global
option http-keep-alive
ma