ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

centos6.8中实现haproxy+rabbitmq集群

2021-12-30 10:34:40  阅读:200  来源: 互联网

标签:haproxy rabbitmq etc rabbitmqctl centos6.8 local ### usr


 

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管理权限

 

标签:haproxy,rabbitmq,etc,rabbitmqctl,centos6.8,local,###,usr
来源: https://www.cnblogs.com/dong-zi/p/15747553.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有