rabbitmq 新增遠端訪問功能
剛剛安裝過的rabbitmq 訊息佇列,並啟用了外掛管理功能,3.3.1版中,處於安全的考慮,guest這個預設的使用者只能通過http://localhost:15672 來登入,其他的IP無法直接使用這個賬號。這對於伺服器上沒有安裝桌面的情況是無法管理維護的,除非通過在前面新增一層代理向外提供服務,這個又有些麻煩了,這裡通過配置檔案來實現這個功能。
只要編輯 /etc/rabbitmq/rabbitmq.config 檔案,新增以下配置就可以了。
[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["asdf"]}]}
].
現在添加了一個新授權使用者asdf,可以通過外網使用這個使用者名稱和密碼訪問.(記得要先用命令新增這個命令才行, #rabbitmqctl
add_userasdf
參考文件:http://www.rabbitmq.com/access-control.html
1 |
#
rabbitmqctl add_user asdf pwd123456
|
1 2 3 4 |
#
rabbitmqctl list_users
Listing
users
...
asdf
guest
[administrator]
|
Setting permissions for user "asdf" in vhost "/" ...
1 |
#
rabbitmqctl set_permissions -p "/" asdf ".*" ".*" ".*"
|
1 2 3 4 |
#
rabbitmqctl list_permissions -p /
Listing
permissions in
vhost "/"
...
asdf
.* .* .*
guest
.* .* .*
|
可以看到新增使用者成功了,但不是administrator角色,這裡我們也將asdf使用者設定為administrator角色.
1 2 3 4 5 6 7 |
#
rabbitmqctl set_user_tags asdf administrator Setting
tags for
user "asdf"
to [administrator] ..
#
rabbitmqctl list_users
Listing
users
...
asdf
[administrator]
guest
[administrator]
|
我用rpm包安裝的rabbitmq,所以提供預設的配置參考檔案(/usr/share/doc/rabbitmq-server-3.5.0/rabbitmq.config.example),如果你使用原始碼編譯的話,可以找到一個預設的配置檔案rabbitmq.config.example,點選這裡下載此檔案rabbitmq.config
1 |
$ sudo
rabbitmqctl set_permissions -p /vhost1
user_admin '.*'
'.*'
'.*'
|
該命令使使用者user_admin具有/vhost1這個virtual host中所有資源的配置、寫、讀許可權以便管理其中的資源