1. haproxy安装
1.1 版本信息:
haproxy-1.8.10.tar.gz版本
解压:tar -zxvf haproxy-1.8.10.tar.gz
进入解压后的文件夹
1.2 查看服务器内核版本信息:
因为haproxy对内核版本是有要求的
命令:uname -r
执行编译:
make TARGET=linux2628 PREFIX=/usr/local/hapro
注意:
这里TARGET=linux2628是根据内核版本来的,内核版本大于这个都用2628;
PREFIX=/usr/local/haproxy 是编译后会生成一个haproxy文件夹,这是路径
1.3执行安装命令:
make install PREFIX=/usr/local/haproxy
安装完毕后,通过命令查看
/usr/local/haproxy/sbin/haproxy -v
1.4配置haproxy文件
复制启动文件到sbin目录下
cp /usr/local/haproxy/sbin/haproxy /usr/sbin/
在解压包haproxy-1.8.10目录下复制文件到指定目录
cp ./examples/haproxy.init /etc/init.d/haproxy
最后赋予755权限
chmod 755 /etc/init.d/haproxy
创建一个haproxy系统账号:
useradd -r haproxy
创建配置文件
mkdir /etc/haproxy
添加配置文件软连接
ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg
拷贝错误页面
cp -r /usr/local/haproxy/haproxy-1.8.10/examples/errorfiles /data/haproxy/errorfiles
添加软连接
ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles
创建日志文件目录
mkdir -p /usr/local/haproxy/log
创建日志文件
touch /usr/local/haproxy/log/haproxy.log
添加软连接
ln -s /usr/local/haproxy/log/haproxy.log /var/log/haproxy.log
添加脚本执行权限
chmod +x /etc/rc.d/init.d/haproxy
设置开机启动
chkconfig haproxy on
创建并编辑文件haproxy.cfg
vi /etc/haproxy/haproxy.cfg
配置文件内容:
global
log 127.0.0.1 local2
maxconn 3000 ###最大连接数,默认4000
chroot /usr/local/haproxy ###改变目录
pidfile /usr/local/haproxy/conf/haproxy.pid ###haproxy的pid存放路径,将所有进程写入pid文件,启动进程的用户必须有权限访问此文件
daemon ###配置haproxy进入后台运行模式
nbproc 1 ###进程数,可以同时开启多个
#---------------------------------------------------------------------
# Defaults settings
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
log global ###采用全局定义的日志
mode http ###默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
option httplog ###日志类别http日志格式
option dontlognull ###不记录健康检查的日志信息
option httpclose ###每次请求完毕后主动关闭http通道
retries 3 ###3次连接失败就认为服务不可用,也可以通过后面设置
option redispatch ###serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option forwardfor ###如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip
timeout connect 10000 #default 10 second timeout if a backend is not found
timeout client 300000 ###客户端连接超时
timeout server 300000 ###服务器连接超时
maxconn 60000 ###最大连接数
####################################################################
listen stats
bind 0.0.0.0:1080 #监听端口
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面url
stats realm Haproxy Manager #统计页面密码框上提示文本
stats auth admin:admin #统计页面用户名和密码设置
#stats hide-version #隐藏统计页面上HAProxy的版本信息
保存退出后启动
service haproxy start
查看端口运行情况lsof -i:1080,其中1080端口号是配置文件中配置的
最后启动我们的页面
Ip:端口号/stats即可访问,如果不想加stats可找到配置文件中的路径将stats去除(未验证)
2.多台服务器分别安装RabbitMQ
2.1 安装概要
安装步骤这里不多提,分别在多台服务器上安装单机的RabbitMQ即可,注意相关依赖以及是否能正常访问mq的web端即可
2.2集群前准备条件
首先分别我们要有明确的服务器主机名称,我是虚拟机安装的多台服务器名称都叫localhost,这样不好区分,所以我这里才修改不同的主机名。
修改主机名步骤:
(1)临时修改主机名
hostname +主机名称
(2)永久修改主机名
编辑:vi /etc/sysconfig/network
修改里面的HOSTNAME的值
再修改vi /etc/hosts
将里面的localhost.localdomain替换掉即可
最后重启服务器:reboot即可(可不重启)
开始配置集群
保持多台服务器之间的消息互通
我们可以在要集群的服务器里面,执行:vi /etc/hosts,对hosts文件进行编辑,里面的ip和主机名是要关联集群的服务器ip和主机名称
对.erlang.cookie文件进行编辑
命令:vim /var/lib/rabbitmq/.erlang.cookie
需要集群的服务器里面的值要一样:“UPRPJYMAHSVUWEQMVLQE”
然后各个mq节点服务器执行以下集群命令
要先启动mq在执行下面的命令:
rabbitmq-server -detached #启动
或者:
service rabbitmq-server start #启动
rabbitmqctl stop_app #关闭mq的程序
rabbitmqctl reset #重新加载mq的程序
rabbitmqctl join_cluster rabbit@node01 #将本节点与node01节点集群
rabbitmqctl start_app #启动mq的程序
完成镜像功能:在其中一个节点执行指令
rabbitmqctl set_policy -p / ha "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
查看集群状况输入:
rabbitmqctl cluster_status
在浏览器输入其中一个ip和端口就可以看到RabbitMQ节点集群状况了。
小贴士:
移除集群节点命令
rabbitmqctl forget_cluster_node rabbit@nodeIP55
将各个mq节点ip添加到haproxy配置文件中
编辑:vi /etc/haproxy/haproxy.cfg
####################################################################
### rabbitmq 集群配置,转发到
listen rabbitmq__cluster
bind 192.168.1.3:5671
mode tcp
balance roundrobin
server rabbit01 192.168.1.3:5672 check inter 5000 rise 2 fall 3
server rabbit02 192.168.1.2:5672 check inter 5000 rise 2 fall 3
然后重启haproxy服务:
命令:service haproxy restart
查看haproxy页面的RabbitMQ节点的负载情况
快出创建管理账号
rabbitmqctl add_user admin rabbit*123&done //创建admin管理账号
rabbitmqctl set_user_tags admin administrator //设置admin管理权限
rabbitmqctl delete_user guest //删除默认guest账号
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" //赋予admin管理权限