rabbitmq的万能安装和外网访问(NC版)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rabbitmq的万能安装和外网访问(NC版)相关的知识,希望对你有一定的参考价值。

先去这个http://www.rabbitmq.com/releases/下载erlang环境和rpm(erlang的尽量高点,rabbitmq版本差不多就可以了,)

erlang-19.0.4-1.el6.x86_64

rabbitmq-server-3.6.10-1.el6.noarch

注意centos6和centos7是不同的

要看他的版本el6还是el7

yum install  erlang-19.0.4-1.el6.x86_64

选择 y

然后安装

rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc

然后

yum install  rabbitmq-server-3.6.10-1.el6.noarch

启动rabbitmq

service rabbitmq-server start     或者    /etc/init.d/rabbitmq-server start  

service rabbitmq-server stop

service rabbitmq-server restart

启用RabbitMQWeb管理插件

rabbitmq-plugins enable rabbitmq_management

 

出于安全的考虑,guest这个默认的用户只能通过http://localhost:15672 来登录,其他的IP无法直接使用这个账号。 这对于服务器上没有安装桌面的情况是无法管理维护的,除非通过在前面添加一层代理向外提供服务,这个又有些麻烦了,这里通过配置文件来实现这个功能

 

只要编辑 /etc/rabbitmq/rabbitmq.config 文件,添加以下配置就可以了。

[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["admin"]}]}
].

现在添加了一个新授权用户admin,可以通过外网使用这个用户名和密码访问.(记得要先用命令添加这个命令才行,  #rabbitmqctl  add_user admin admin)我是通过在管理平台里直接添加的用户和密码的,我的测试环境装有桌面的。

1
# rabbitmqctl add_user admin admin
1
2
3
4
# rabbitmqctl list_users
Listingusers...
admin
guest   [administrator]

Setting permissions for user "admin" in vhost "/" ...

1
# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
1
2
3
4
# rabbitmqctl list_permissions -p /
Listing permissions invhost"/"...
admin .* .* .*
guest .* .* .*

可以看到添加用户成功了,但不是administrator角色,这里我们也将asdf用户设置为administrator角色.

1
2
3
4
5
6
7
# rabbitmqctl set_user_tags admin administrator
Setting tags foruser"admin"to [administrator] ..
 
# rabbitmqctl list_users
Listingusers...
admin [administrator]
guest [administrator]

在docker环境中配置rabbitmq时

rabbitmq的数据库名称规则是,[email protected],docker每次从docker image启动容器的时候会自动生成hostname,这样一来,你保存在主机上的数据库就会没用了,包括之前创建的用户也会没有了。所以在创建容器的时候必须指定--hostname=rabbitmqhostone,这样docker环境启动后rabbitmq就会一直读取固定目录中的数据了

 

以上是关于rabbitmq的万能安装和外网访问(NC版)的主要内容,如果未能解决你的问题,请参考以下文章

内网和外网之间怎么创建共享文件夹

什么是内网卡和外网卡?它们各有什么作用?

云服务器主机内网ip和外网ip的区别

外网如何获取内网的IP?

IIS发布的网站,内网和外网不能访问的解决办法

python Django项目以Debug模式启动和外网访问启动