注意事项:当前操作的机器需能连接互联网。
第一步:确认系统版本,查看 CentOS 系统的版本
(1)如果想知道当前系统的版本,只需在终端中执行如下命令即可:
1 | |
(2)运行结果如下,表示当前是 CentOS 7 版本。
第二步:安装依赖
由于rabbitmq是基于erlang语言开发的,所以必须先安装erlang。
(1)安装依赖
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
依赖执行过程中需要机器连接互联网,安装未异常说明依赖安装成功。
第三步:确定erlang和rabbitmq安装版本
erlang的版本会影响到rabbitmq的安装,两者有个版本对照。
在浏览中输入查看对照版本的地址:http://www.rabbitmq.com/which-erlang.html,如下图所示。
第四步:安装erlang (以opt_src_23.2版本安装为例)
erlang官网:https://www.erlang.org/downloads
(1)下载(会比较慢,请耐心等待) 当目录为:/rancii/RabbitMQ/install
wget http://erlang.org/download/otp_src_23.2.tar.gz
(2)解压
tar -zxvf otp_src_23.2.tar.gz
(3)切换目录
cd /rancii/RabbitMQ/install/otp_src_23.2
(4)创建即将安装的目录
mkdir ../../erlang
(5)配置安装路径
./configure --prefix=/rancii/RabbitMQ/erlang
如果遇到这个错 你就假装没看到
(6)安装
make install
(7)查看一下是否安装成功
ll /rancii/RabbitMQ/erlang/bin
(8)添加环境变量
echo 'export PATH=$PATH:/rancii/RabbitMQ/erlang/bin' >> /etc/profile
(9)新环境变量
source /etc/profile
(10)甩一条命令
erl
(11)瞬间进入了一个未知的世界
在里面输入halt().命令退出来(那个点号别忘记)
第四步:安装RabbitMQ(以V3.8.16版本安装为例)
rabbitmq下载地址:https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.15
注意事项:
当前目录/rancii/RabbitMQ/install
(1)下载
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz
(2)由于是tar.xz格式的所以需要用到xz,没有的话就先安装
yum install -y xz
(3)第一次解压
/bin/xz -d rabbitmq-server-generic-unix-3.8.16.tar.xz
(4)第二次解压
tar -xvf rabbitmq-server-generic-unix-3.8.16.tar
(5)改名
mv rabbitmq_server-3.8.16/ RabbitMQServer3.8.16
(6)配置环境变量
echo 'export PATH=$PATH:/rancii/RabbitMQ/RabbitMQServer3.8.16/sbin' >> /etc/profile
(7)刷新环境变量
source /etc/profile
(8)启动命令
启动:
rabbitmq-server -detached
停止:
rabbitmqctl stop
状态:
rabbitmqctl status
(9)防火墙之类的请自行处理(5672和15672端口),反正我是从来不开防火墙。
在 Centos 7 中防火墙由 firewalld 来管理,而不是 iptables。
(1). 查看防火墙状态#
firewall-cmd --state ## 结果显示为running或not running
(2). 关闭防火墙firewall#
systemctl stop firewalld.service
systemctl disable firewalld.service
(3). 关闭防火墙firewall后开启#
systemctl start firewalld.service
(4). 开启端口#
## zone -- 作用域
## add-port=80/tcp -- 添加端口,格式为:端口/通讯协议
## permanent -- 永久生效,没有此参数重启后失效
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
(5). 重启防火墙#
firewall-cmd --reload
## 开启端口后,重启防火墙就能访问http://ip:15672
(6). 常用命令介绍#
Copy
firewall-cmd --state ##查看防火墙状态,是否是running
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd ##查看帮助
systemctl status firewalld.service ##查看防火墙状态
systemctl [start|stop|restart] firewalld.service ##启动|关闭|重新启动 防火墙
##查询端口号5672 是否开启
firewall-cmd --query-port=5672/tcp
更多命令,使用 firewall-cmd --help 查看帮助文件
第五步:WEB管理开启web插件
rabbitmq-plugins enable rabbitmq_management
访问:http://127.0.0.1:15672/
第六步:用户设置
- rabbitmq有一个默认的用户名和密码,guest和guest,但为了安全考虑,该用户名和密码只允许本地访问,如果是远程操作的话,需要创建新的用户名和密码;
# root权限
rabbitmqctl add_user admin admin //添加用户,后面两个参数分别是用户名 admin和密码 admin
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" //添加权限
rabbitmqctl set_user_tags admin administrator //修改用户角色,将用户设为管理员
注意:创建的新用户默认角色为空。
management:用户可以访问管理插件
policymaker:用户可以访问管理插件,并管理他们有权访问的vhost的策略和参数。
monitoring:用户可以访问管理插件,查看所有连接和通道以及与节点相关的信息。
administrator:用户可以做任何监视可以做的事情,管理用户,vhost和权限,关闭其他用户的连接,并管理所有vhost的政策和参数。
使用添加的账户远程访问后台管理站点,将原来的账号guest删除;