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
Listing users ...
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 in vhost "/" ...
admin
.* .* .*
guest
.* .* .*
|
可以看到添加用戶成功了,但不是administrator角色,這裏我們也將asdf用戶設置為administrator角色.
1 2 3 4 5 6 7 |
#
rabbitmqctl set_user_tags admin administrator
Setting
tags for user "admin" to
[administrator] ..
#
rabbitmqctl list_users
Listing users ...
admin
[administrator]
guest
[administrator]
|
在docker環境中配置rabbitmq時
rabbitmq的數據庫名稱規則是,NODENAME@hostname,docker每次從docker image啟動容器的時候會自動生成hostname,這樣一來,你保存在主機上的數據庫就會沒用了,包括之前創建的用戶也會沒有了。所以在創建容器的時候必須指定--hostname=rabbitmqhostone,這樣docker環境啟動後rabbitmq就會一直讀取固定目錄中的數據了
rabbitmq的萬能安裝和外網訪問(NC版)