环境准备:contOS7
由于RabbitMQ依赖Erlang, 所以需要先安装Erlang。
Erlang的安装方式大概有两种:
1.从Erlang Solution安装(推荐)
# 添加erlang solutions源
$ wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
$ sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
$ sudo yum install erlang
2.从EPEL源安装(这种方式安装的Erlang版本可能不是最新的,有时候不能满足RabbitMQ需要的最低版本)
# 启动EPEL源
$ sudo yum install epel-release
# 安装erlang
$ sudo yum install erlang
注意:新系统使用wget 安装可能会出现wget命令未找到,需先安装wget :yum -y install wget
安装wget完成后继续使用wget命令安装:
$ wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
Erlang 完成后安装RabbitMQ:先下载rpm:
$ wget http://www.rabbitmq.com/releases
/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
下载完成后安装:
$ yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm
安装时如果遇到下面的依赖错误
Error: Package: socat-1.7.2.3-1.el6.x86_64 (epel)
Requires: libreadline.so.5()(64bit)
可以尝试执行下列命令:
$ sudo yum install socat
本人安装未发现以上错误,若有,尝试以上命令即可。
$ sudo chkconfig rabbitmq-server on # 添加开机启动RabbitMQ服务
$ sudo /sbin/service rabbitmq-server start # 启动服务
$ sudo /sbin/service rabbitmq-server status # 查看服务状态
$ sudo /sbin/service rabbitmq-server stop # 停止服务
# 查看当前所有用户
$ sudo rabbitmqctl list_users
# 查看默认guest用户的权限
$ sudo rabbitmqctl list_user_permissions guest
# 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户
$ sudo rabbitmqctl delete_user guest
# 添加新用户
$ sudo rabbitmqctl add_user username password
# 设置用户tag
$ sudo rabbitmqctl set_user_tags username administrator
# 赋予用户默认vhost的全部操作权限
$ sudo rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
# 查看用户的权限
$ sudo rabbitmqctl list_user_permissions username
# 修改用户的密码
$ rabbitmqctl change_password Username 'Newpassword'
更多关于rabbitmqctl
的使用,可以参考帮助手册。
如果只从命令行操作RabbitMQ,多少有点不方便。幸好RabbitMQ自带了web管理界面,只需要启动插件便可以使用。
$ sudo rabbitmq-plugins enable rabbitmq_management
安装过程中可能会出现Applying plugin configuration to rabbit@localhost… failed:
登录管理界面时,提示登录失败。
解决办法:先停止服务,再启动服务,启动完服务后,对用户进行添加
$ service rabbitmq-server stop
$ service rabbitmq-server start
添加完用户后,需要对用户进行授权。
添加用户以及授权
$ rabbitmqctl add_user admin 123456
$ rabbitmqctl set_user_tags admin administrator
$ rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'
然后再次执行web管理界面命令
$ sudo rabbitmq-plugins enable rabbitmq_management
通过浏览器访问
http://localhost:15672
localhost改成对应的主机IP
输入用户名和密码访问web管理界面了。
关于RabbitMQ的配置,可以下载RabbitMQ的配置文件模板到/etc/rabbitmq/rabbitmq.config
, 然后按照需求更改即可。
关于每个配置项的具体作用,可以参考官方文档。
更新配置后,别忘了重启服务哦!
默认情况下,RabbitMQ的默认的guest
用户只允许本机访问, 如果想让guest
用户能够远程访问的话,只需要将配置文件中的loopback_users
列表置为空即可,如下:
{loopback_users, []}
另外关于新添加的用户,直接就可以从远程访问的,如果想让新添加的用户只能本地访问,可以将用户名添加到上面的列表, 如只允许admin
用户本机访问。
{loopback_users, ["admin"]}
更新配置后,别忘了重启服务哦!
$ sudo /sbin/service rabbitmq-server status # 查看服务状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Kt959zi-1595605363249)(file:///C:/Users/xmk/Documents/My%20Knowledge/temp/60411c5f-617c-4758-b3ce-0f6871a6cb08/128/index_files/f405ab8c-1a10-4143-bee6-3e2a69ad7512.png)]
这里可以看到log文件的位置,转到文件位置,打开文件:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8fKoP4WJ-1595605363252)(file:///C:/Users/xmk/Documents/My%20Knowledge/temp/60411c5f-617c-4758-b3ce-0f6871a6cb08/128/index_files/58c911ad-f8e2-4684-8781-3205d2cd301d.png)]
这里显示的是没有找到配置文件,我们可以自己创建这个文件
cd /etc/rabbitmq/
vi rabbitmq.config
编辑内容如下:
[{rabbit, [{loopback_users, []}]}].
这里的意思是开放使用,rabbitmq默认创建的用户guest,密码也是guest,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置。
保存配置后重启服务:
service rabbitmq-server stop
service rabbitmq-server start
此时就可以从外部访问了,但此时再看log文件,发现内容还是原来的,还是显示没有找到配置文件,可以手动删除这个文件再重启服务,不过这不影响使用
rm rabbit\@mythsky.log
service rabbitmq-server stop
service rabbitmq-server start
注意:记得要开放5672和15672端口
1. /sbin/iptables -I INPUT -p tcp --dport 5672 -j ACCEPT
2. /sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT