# 本文已参与「新人创作礼」活动,一起开启掘金创作之路。
首先下载keepalived,下载地址:www.keepalived.org/download.ht…
链接在此!!!快快下载 文章先读:如果节点够的话,建议rabbitmq放在单独的节点,haproxy和keepalived放在同一个节点,keepalived做主备,然后使用虚拟IP;
1、然后点击上面的链接下载MQ,tar -zxvf rabbit.install.tgz进行解压 解压后文件列表如下
2、然后执行./install进行安装,需要安装几台节点,就把压缩包拷贝几个节点,然后重述上述命令进行安装 3、节点1操作:以节点1 为集群节点进行演示, 关闭MQ服务 service rabbitmq-server stop 以集群模式启动 rabbitmq-server –detached 查看集群状态 rabbitmqctl cluster_status 创建一个用户,用于整个集群:rabbitmqctl add_user roboconf roboconf rabbitmqctl set_permissions roboconf "." "." ".*" 确保HA同步是自动的 rabbitmqctl set_policy ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}' 修改 /etc/hosts文件 增加((本地IP) (节点名称))(IP与rabbitMQ安装对应node名,有几个节点加几个) 如果不知道怎么修改节点名称的话,执行:hostnamectl set-hostname 节点名称 至此,节点1配置结束,
4、节点2n操作:2n节点的操作都一样,
编辑/var/lib/rabbitmq/.erlang.cookie并插入与节点Rabbit1相同的内容
可以这么操作(在节点1执行命令如下)scp/var/lib/rabbitmq/.erlang.cookie 节点2的IP:/var/lib/rabbitmq/.erlang.cookie
关闭MQ服务 service rabbitmq-server stop
以集群模式启动rabbitmq-server –detached 然后关闭MQ rabbitmqctl stop_app
将节点2加入节点1的集群中 rabbitmqctl join_cluster rabbit@节点1 启动MQ rabbitmqctl start_app
查看集群状态 rabbitmqctl cluster_status 出现以下画面者,恭喜你,集群已经配置好,两个节点属于一个集群,下一步配置负载均衡HAProxy
5、选一台节点安装HAproxy 使用yum源安装haproxy,没有yum源的自己配去,yum install -y haproxy 修改配置文件/etc/haproxy/haproxy.cfg(因为修改的比较多,建议把之前的给删掉,然后新建一个配置文件,给400权限) 配置内容如下:(需要修改的我会标红)
global
指定日志记录路径,这个local2是需要在/etc/rsyslog.conf文件中指定的,指定了日志存储路径之后,需要重启rsyslog服务哦
#查看/etc/rsyslog.conf文件,看看有local几,下面就是local几
log 127.0.0.1 local7
指定haproxy的运行环境
chroot /var/lib/haproxy
指定进程的pid
pidfile /var/run/haproxy.pid
指定单个进程的最大并发连接数
maxconn 4000
指定允许haproxy的用户,groupadd haproxy : useradd -r -g haproxy haproxy
user haproxy
指定允许haproxy的组
group haproxy
指定haproxy以守护进程模式运行
daemon
设置后台运行2个haproxy进程,但是后台运行了3个进程
nbproc 2
指定Unix socket通信(基本没用过)
stats socket /var/lib/haproxy/stats
这里是默认的选项,如何在listen段,backend段,frontend段中将这些选项按需求重新制定
defaults
指定默认的模式
mode http
指定日志信息使用全局指定的日志存储路径,全局日志是存储在rsyslog服务中
log global
将log日志记录到rsyslog日志服务器中,指定日志级别为notice级别
log 172.19.4.109 local7 notice
日志格式可以不指定,有其默认的值
#log-format %T\ %t\ Some\ Text
指定压缩类型
compression algo gzip
指定需要压缩的资源类型
compression type text/html text/plain option httplog option dontlognull option http-server-close
在后端服务器中可以记录客户端的源IP地址,在日志中加上%{X-Forwarded-For}i
option forwardfor except 127.0.0.1/8
如果后端服务器不提供服务,那么将会重新di
option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s
指定接受10000个并发
maxconn 10000
haproxy统计页面配置段
listen stats
指定统计页面监听的端口
bind *:33559
指定统计页面运行的模式
mode http
指定开启统计页面功能
stats enable
如果不设置URI,默认是/haproxy?stats
stats uri /admin
指定登入是提示信息,\表示转义空白字符
stats realm HAProxy\ statistics
指定用户名和密码,在网页登录的时候用
stats auth admin:123456
指定统计页面自动刷新的时长
stats refresh 20
如果用户认证成功,统计页面可以被访问
stats admin if TRUE #隐藏统计页面上HAProxy的版本信息 stats hide-version
#####rabbitmq的管理界面 listen rabbitmq_admin bind 0.0.0.0:15672 server rabbit-01 172.19.4.107:15672 server rabbit-02 172.19.4.109:15672 ####### listen rabbitmq bind 0.0.0.0:5672 option tcplog mode tcp timeout client 3h timeout server 3h balance roundrobin
inter 2000 是健康状态检测的时间间隔,rise 2:2次请求成功认为服务器可用,fall 3:3次请求不成功认为服务器不可用
server rabbit-01 自己的节点IP:5672 check fall 3 rise 2 server rabbit-02 有几个节点写几个IP:5672 check fall 3 rise 2
配置结束后,haproxy -c -f /etc/haproxy/haproxy.cfg检查配置文件是否有错,有错的话,看日志自己解决,不行就百度 最后启动HA sudo /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -D -p /var/run/haproxy.pid 6、验证是否正确 登录地址,出现以下画面,输入用户名密码
出现以下画面者,haproxy配置成功,
配置keepalived 1、首先从官网下载tar包后解压,
#/usr/local/keepalived/ 为你要安装的目录,不要把安装目录弄到tar包
./configure --prefix=/usr/local/keepalived/
configure的时候可能会报错,是因为缺少opensll依赖,有yum源的话可使用yum install -y openssl openssl-devel命令,没有的话自己下载依赖包去安装。
#编译并安装 make && make install
vim /usr/local/keepalived/etc/keepalived
主节点,可直接拷贝 vrrp_script chk_haproxy {undefined script "pidof haproxy" #检查脚本 interval 2 } vrrp_instance VI_1 {undefined interface ens192 #网卡信息,查看自己的网卡,填进去 state MASTER #代表主节点 priority 200 virtual_router_id 10 unicast_src_ip 192.168.1.1 #本机IP地址 unicast_peer {undefined 192.168.1.2 #备份节点IP地址 } authentication {undefined auth_type PASS auth_pass password } virtual_ipaddress {undefined 192.168.1.10 //虚拟ip,对外提供服务,可设置多个 } track_script { #检查进程是否存在脚本 chk_haproxy } }
备: vrrp_script chk_haproxy {undefined script "pidof haproxy" interval 2 } vrrp_instance VI_1 {undefined interface ens192 state BACKUP priority 100 virtual_router_id 10 unicast_src_ip 192.168.1.2 unicast_peer {undefined 192.168.1.1 } authentication {undefined auth_type PASS auth_pass password } virtual_ipaddress {undefined 192.168.1.10 } track_script {undefined chk_haproxy } }
在两个节点都执行下面命令
加入自启动
cp /usr/local/keepalived-2.0.18/keepalived/etc/init.d/keepalived /etc/init.d/(注意,keepalived 在解压后的没有configure之前的文件夹中)
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived-2.0.18/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
设置开机自启动
chkconfig keepalived on
启动keepalived 服务
systemctl start keepalived.service
systemctl status keepalived.service 查看启动状态,如果是dead,则启动失败,看日志并解决,
启动成功后
使用虚拟IP访问haproxy Web界面,访问成功,则配置完成,访问失败,自己看着步骤再看下是否哪步有错 ———————————————— 版权声明:本文为CSDN博主「W_kiven」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/W_kiven/art…