IILeeのBlog

IILeeのBlog

Linux下 RabbitMQ 安装

551
2019-09-05
Linux下 RabbitMQ 安装

安装依赖

  • RabbitMQ依赖Erlang,需要先安装Erlang。
#启动EPEL源
sudo yum install epel-release
安装erlang
sudo yum install erlang

下载并解压安装包

  • 先新建一个文件夹,博主喜欢在/var下面安装服务器软件
cd /var
mkdir rabbitmq
cd rabbitmq
  • 下载rpm
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el6.noarch.rpm
  • 下载完成后安装
yum install rabbitmq-server-3.6.15-1.el6.noarch.rpm

RabbitMQ的一些基本操作

# 添加开机启动RabbitMQ服务
sudo chkconfig rabbitmq-server on

# 启动服务
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的使用,可以参考帮助手册

开启web管理接口

  • RabbitMQ自带了web管理界面,只需要启动插件便可以使用。
sudo rabbitmq-plugins enable rabbitmq_management
  • 然后通过浏览器访问
http://yourhost:15672

配置RabbitMQ

  • 关于每个配置项的具体作用,可以参考官方文档。 更新配置后,别忘了重启服务哦!

开启用户远程访问

  • 默认情况下,RabbitMQ的默认的guest用户只允许本机访问, 如果想让guest用户能够远程访问的话,只需要将配置文件中的loopback_users列表置为空即可,如下:
{loopback_users, []}
  • 另外关于新添加的用户,直接就可以从远程访问的,如果想让新添加的用户只能本地访问,可以将用户名添加到上面的列表, 如只允许admin用户本机访问。
{loopback_users, ["admin"]}
  • 更新配置后,需要重启服务
sudo /sbin/service rabbitmq-server status  # 查看服务状态
  • 进入log文件夹内查看日志

image-1

cd /var/log/rabbitmq

image-2

  • 这里显示的是没有找到配置文件,我们可以自己创建这个文件
cd /etc/rabbitmq/
vim rabbitmq.config
  • 编辑内容如下:
[{rabbit, [{loopback_users, []}]}].

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

  • 保存配置后重启服务:
service rabbitmq-server stop
service rabbitmq-server start

此时就可以从外部访问了,至此rabbitmq已经搭建完成,去做测试吧WwW

后记

记得要开放5672和15672端口

5672表示客户端访问端口

15672表示web界面展示接口