目录
也可以不改
vi /etc/hostname
2.配置各节点host
让各节点都能识别对方
vi /etc/hosts
192.168.3.132 rabbitmq-node1
192.168.3.133 rabbitmq-node2
192.168.3.134 rabbitmq-node3
3.修改cookie
以确保各个节点的cookie文件使用的同一个值, 在node1上执行远程命令
scp /var/lib/rabbitmq/.erlang.cookie root@rabbitmq-node2:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@rabbitmq-node3:/var/lib/rabbitmq/.erlang.cookie
4.重启RabbitMQ服务
顺带启动Erlang虚拟机和RabbitMQ应用服务(在三个节点上执行)
rabbitmq-server -detached
5.在2节点上执行
rabbitmqctl stop_app #只关闭Rabbitmq服务
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq-node1
rabbitmqctl start_app #只启动应用服务
6.在3节点执行
rabbitmqctl stop_app #只关闭Rabbitmq服务
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq-node1
rabbitmqctl start_app #只启动应用服务
7.集群状态
rabbitmqctl cluster_status
8.需要重新设置用户
8.1 创建账号
rabbitmqctl add_user admin admin
8.2 设置用户角色
rabbitmqctl set_user_tags admin administrator
8.3 设置用户权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
9.解除集群节点
node2和node3机器分别执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
rabbitmqctl cluster_status
rabbitmqctl forget_cluster_node_rabbit@rabbitmq-node2(node1机器上执行)
10.Nginx负载均衡配置
文件编码:ANSI这个重要,否则会出错,
消息队列端口5672代理5672, 消息队列端口15672代理5672
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
stream {
upstream stream_rabbitmq_backend {
server 192.168.4.136:5672;
server 192.168.4.137:5672;
server 192.168.4.138:5672;
}
server {
listen 5672;
proxy_pass stream_rabbitmq_backend;
}
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
upstream stream_15672 {
server 192.168.4.136:15672;
server 192.168.4.137:15672;
server 192.168.4.138:15672;
}
server {
listen 15672;
server_name 192.168.4.139;
location / {
root html;
proxy_pass http://stream_15672;
index index.html index.htm;
}
}
include /etc/nginx/conf.d/*.conf;
}