所有你复制的命令到要把空格删了再打空格
1主机 2主机从机 3从机 不加镜像不是高可用
1--->2----->3
加镜像
Pattern Virtual host:都要跟idea里一致
原本是数据都有
把1stop 3变主 2镜像
haproxy 管123
所用软件xshell
1,。yum -y install wget gcc
2. cd /opt/software 下载到software下
wget https://www.haproxy.org/download/2.8/src/haproxy-2.8.0.tar.gz
tar -xzvf /opt/software/haproxy-2.8.0.tar.gz -C /usr/ 解压到usr下
mkdir /usr/local/haproxy 创建安装目录
cd /usr/haproxy-2.8.0/ 安装到这下面
make TARGET=linux30 && make install PREFIX=/usr/local/haproxy/
第一条命令:make TARGET=linux30
make
是一个工具,它根据Makefile(一个包含编译指令的文件)来编译和构建程序。Makefile定义了如何编译和链接程序,以及构建过程中需要哪些文件。TARGET=linux30
是一个传递给make
的参数,用于指定编译的目标平台。在这个例子中,linux30
可能指的是针对Linux内核3.x版本的优化或兼容性设置。不同的TARGET
值可能意味着不同的编译器选项、链接器选项或预处理器定义,以确保HAProxy能够在特定的操作系统或硬件上正确运行。
第二条命令:make install PREFIX=/usr/local/haproxy/
- 这条命令也是使用
make
工具,但这次它是用来安装编译好的HAProxy程序。 install
是Makefile中定义的一个目标(target),它包含了将编译好的文件(如可执行文件、配置文件等)复制到指定位置的指令。PREFIX=/usr/local/haproxy/
是一个传递给make install
的参数,用于指定安装目录的前缀。默认情况下,很多软件会安装到/usr/local
或/usr
目录下,但通过设置PREFIX
,你可以改变安装位置。在这个例子中,HAProxy将被安装到/usr/local/haproxy/
目录下,这意味着可执行文件、配置文件等都将位于这个目录下或其子目录中。
总结
这两条命令结合起来,首先编译HAProxy以适配Linux 3.x版本(或类似的兼容性设置),然后将编译好的HAProxy安装到/usr/local/haproxy/
目录下。这样做的好处包括:
- 灵活性:通过指定
TARGET
,可以确保HAProxy与你的系统环境兼容。 - 自定义安装位置:通过
PREFIX
,你可以将HAProxy安装到非标准位置,这有助于管理多个版本的软件或避免与系统自带的软件冲突。 - 易于管理:将软件安装到自定义目录下,可以更容易地对其进行备份、升级或卸载。
target=linux30:
这个选项指定了HAProxy的编译目标平台。linux30是HAProxy用来表示Linux平台的一个目标名称,其中“30”表示的是一个内部的版本标识符,它代表了对Linux内核的特定支持和优化。选择正确的target很重要,因为它会影响生成的二进制文件的兼容性和性能。
ls /usr/local/haproxy 出现下面的doc sbin share sbin下有个绿色haproxy 就是安装好了
3.创建配置目录,组和用户
mkdir /etc/haproxy 创建配置目录
vim /etc/haproxy/haproxy.cfg 编辑配置文件
-----------------------------------------------------------------------------------------------------------------
global
# 全局设置 info日志级别 可以配多条日志 log 127.0.0.1 localX info
#设置日志 使用 local0 来标记其日志条目,这有助于在接收端区分不同来源的日志。
log 127.0.0.1 local0 info
#log 127.0.0.1 local1 notice
#当前工作目录 run 跟tmp 一样,运行时产生的临时文件放在这
chroot /usr/local/haproxy
pidfile /run/haproxy.pid
#最大链接数
maxconn 4096
#用户和组配置 和上面配置一致
user haproxy
group haproxy
#守护进程启动,让他一个窗口,在后台运行
daemon
defaults
# 默认设置
#启动全局日志配置
log global
#默认的模式(tcp4层|http7层|health返回ok)
mode tcp
#日志类型tcplog
option tcplog
#不记录健康日志检查信息
option dontlognull
#3次失败认为服务不可用
retries 3
#每个进程可用的最大连接数
maxconn 200
#连接超时
timeout connect 5000
#客户超时
timeout client 50000
#服务超时
timeout server 50000
#绑定配置
listen rabbitmq_cluster
#绑定通过访问haproxy来访问rabbitmq的IP和端口号
bind 192.168.58.74:16666
#配置tcp模式
mode tcp
#轮询,三个机子挨个访问
balance roundrobin
#启用了TCP健康检查
#option tcp-check
#在健康检查时,向RabbitMQ发送一个换行符(CRLF)
#tcp-check send CRLF
#期望在健康检查中接收到以"AMQP"开头的字符串,这是RabbitMQ响应的一部分,表明服务器处于活动状态。
#tcp-check expect string AMQP
#服务器列表
#check健康检查的频率和阈值设置。
#inter 2000意味着每2秒进行一次检查;
#rise 2意味着需要连续两次成功响应才能认为服务器是健康的;
#fall 3意味着连续三次失败响应后,服务器将被认为不健康。
server rabbitmq1 192.168.58.71:5672 check inter 2000 rise 2 fall 3
server rabbitmq2 192.168.58.72:5672 check inter 2000 rise 2 fall 3
server rabbitmq3 192.168.58.73:5672 check inter 2000 rise 2 fall 3
#监控统计页面配置
listen stats
bind 192.168.58.74:18080
mode http
stats enable
#项目名字
stats uri /haproxy_stats
#设置了访问统计页面时的认证提示。
stats realm Haproxy\ Statistics
#设置了访问统计页面时的认证提示。
stats auth 用户:密码
# 设置了统计信息刷新的时间间隔,默认为 30 秒,这里设置为 10 秒
stats refresh 10s
---------------------------------------------------------------------------------------------------------------
注意:用户密码
---------------------------------------------------------------------------------------------------------------
创建组:组名haproxy与上面配置文件的要一致 -r 创建系统组(gid<1000)
groupadd -r -g 166 haproxy
cat /etc/group 用这个查看是否添加成功
创建用户:用户名haproxy与上面配置文件的要一致 -r 创建系统用户(uid<1000)
-s选项设置用户的登录Shell为/sbin/nologin 不能登录交互的用户
useradd -g haproxy -r -s /sbin/nologin -u 166 haproxy
cat /etc/passwd | grep haproxy 用这个查看是否添加成功
配置启动文件
所有root命令都在绿色sbin里放着 本质在usr/sbin里放着
复制haproxy文件到/usr/sbin下,这样 haproxy可以直接用了,不需要指定完整路径,上面有说过haproxy也是绿色 可执行文件
cp /usr/local/haproxy/sbin/haproxy /usr/sbin/
复制haproxy初始化脚本到/etc/init.d/下
cp /usr/haproxy-2.8.0/examples/haproxy.init /etc/init.d/haproxy
修改权限:
chmod 755 /etc/init.d/haproxy 权限rwxrw-rw-
service haproxy start 启动
123台机子也需要启动 service rabbitmq-server start
在网页输入Statistics Report for HAProxyhttp://192.168.58.74:18080/haproxy_stats
ip改成haproxy的ip 出现下面的图就成功了