安装Erlang

由于RabbitMQ依赖Erlang, 所以需要先安装Erlang。

Erlang的安装方式大概有两种:

  1. 从Erlang Solution安装(推荐)

    1. centos安装Erlang https://blog.csdn.net/LONG_Yi_1994/article/details/83928049
    2. 1.添加存储库条目
    3. 要将Erlang Solutions存储库(包括用于验证签名包的公钥)添加到系统,请调用以下命令:
    4. # 添加erlang solutions源
    5. wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
    6. rpm -Uvh erlang-solutions-1.0-1.noarch.rpm // $sudo rpm .......
    7. 或者:手动添加存储库条目
    8. 3.安装Erlang
    9. $ sudo yum install erlang
    10. // sudo yum install esl-erlang
  2. 从EPEL源安装(这种方式安装的Erlang版本可能不是最新的,有时候不能满足RabbitMQ需要的最低版本)

  1. # 启动EPEL源
  2. $ sudo yum install epel-release
  3. # 安装erlang
  4. $ sudo yum install erlang

完成后安装RabbitMQ:

先下载rpm:

  1. 华为镜像
  2. wget https://repo.huaweicloud.com/rabbitmq-server/v3.8.9/rabbitmq-server-3.8.9-1.el6.noarch.rpm

下载完成后安装:

  1. yum install rabbitmq-server-3.8.9-1.el6.noarch.rpm

安装时如果遇到下面的依赖错误

  1. Error: Package: socat-1.7.2.3-1.el6.x86_64 (epel)
  2. Requires: libreadline.so.5()(64bit)

可以尝试先执行

  1. $ sudo yum install socat

关于RabbitMQ的一些基本操作

  1. $ sudo chkconfig rabbitmq-server on # 添加开机启动RabbitMQ服务
  2. $ sudo /sbin/service rabbitmq-server start # 启动服务
  3. 启动报错
  4. Job for rabbitmq-server.service failed because a timeout was exceeded. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.【失败】
  5. $ sudo /sbin/service rabbitmq-server status # 查看服务状态
  6. $ sudo /sbin/service rabbitmq-server stop # 停止服务
  7. # 查看当前所有用户
  8. $ sudo rabbitmqctl list_users
  9. # 查看默认guest用户的权限
  10. $ sudo rabbitmqctl list_user_permissions guest
  11. # 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户
  12. $ sudo rabbitmqctl delete_user guest
  13. # 添加新用户
  14. $ sudo rabbitmqctl add_user username password
  15. # 设置用户tag
  16. $ sudo rabbitmqctl set_user_tags username administrator
  17. # 赋予用户默认vhost的全部操作权限
  18. $ sudo rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
  19. # 查看用户的权限
  20. $ sudo rabbitmqctl list_user_permissions username

开启用户远程访问

1查看服务状态

  1. sudo /sbin/service rabbitmq-server status # 查看服务状态

2查看日志所在位置

3查看日志

开启用户远程访问

1查看

  1. yum 安装后的路径
  2. cat /usr/lib/rabbitmq/bin/rabbitmq-defaults

2创建文件

  1. cd /etc/rabbitmq
  2. vim /etc/rabbitmq/rabbitmq-env.conf
  3. 内容
  4. [{rabbit, [{loopback_users, []}]}]

管理界面插件:

  1. rabbitmq-plugins enable rabbitmq_management

开启web管理接口

如果只从命令行操作RabbitMQ,多少有点不方便。幸好RabbitMQ自带了web管理界面,只需要启动插件便可以使用。

  1. $ sudo rabbitmq-plugins enable rabbitmq_management

然后通过浏览器访问

http://localhost:15672

输入用户名和密码访问web管理界面了。

配置RabbitMQ

关于RabbitMQ的配置,可以下载RabbitMQ的配置文件模板到/etc/rabbitmq/rabbitmq.config, 然后按照需求更改即可。
关于每个配置项的具体作用,可以参考官方文档。
更新配置后,别忘了重启服务哦!

开启用户远程访问

默认情况下,RabbitMQ的默认的guest用户只允许本机访问, 如果想让guest用户能够远程访问的话,只需要将配置文件中的loopback_users列表置为空即可,如下:

  1. {loopback_users, []}

另外关于新添加的用户,直接就可以从远程访问的,如果想让新添加的用户只能本地访问,可以将用户名添加到上面的列表, 如只允许admin用户本机访问。

  1. {loopback_users, ["admin"]}

更新配置后,别忘了重启服务哦!

  1. sudo /sbin/service rabbitmq-server status # 查看服务状态

这里可以看到log文件的位置,转到文件位置,打开文件:

这里显示的是没有找到配置文件,我们可以自己创建这个文件

  1. cd /etc/rabbitmq/
  2. vi rabbitmq.config

编辑内容如下:

  1. [{rabbit, [{loopback_users, []}]}].

这里的意思是开放使用,rabbitmq默认创建的用户guest,密码也是guest,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置。

保存配置后重启服务:

  1. service rabbitmq-server stop
  2. service rabbitmq-server start

此时就可以从外部访问了,但此时再看log文件,发现内容还是原来的,还是显示没有找到配置文件,可以手动删除这个文件再重启服务,不过这不影响使用

  1. rm rabbit\@mythsky.log
  2. service rabbitmq-server stop
  3. 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

rabbitmq 配置文件

https://blog.csdn.net/weixin_44887042/article/details/108254263
https://blog.csdn.net/xiaoming1563/article/details/82385486
https://www.cnblogs.com/powerwu/articles/9529659.html