前言
本文介紹Linux環境安裝RabbitMQ教學, Windows環境請參考: windows安裝RabbitMQ
一、安裝思路
由於RabbitMQ是基於Erlang語言開發, 所以在安裝RabbitMQ之前, 需要先安裝Erlang
rabbitmq需要socat依賴, 所以需要先安裝socat
二、具體步驟
安裝erlang
下載: wget http://www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
安裝: rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
安裝socat
下載: wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
安裝: rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
安裝rabbitmq
下載: wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
安裝: rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
安裝成功, 如下圖所示:
三、啓動rabbitmq服務
安裝完成後, 還沒啓動服務, 先檢視rabbitmq服務狀態, 命令: service rabbitmq-server status, 提示:
Error: unable to connect to node rabbit@wangzaiplus: nodedown
OK, 啓動rabbitmq服務, 命令: service rabbitmq-server start, 檢查是否啓動成功: ps -ef | grep rabbitmq
四、啓用後臺管理外掛
此時, 服務已經啓動, 但通過瀏覽器存取http://localhost:15672或ip:15672還是不能存取管理介面, 因爲還沒啓用外掛, 啓用命令: rabbitmq-plugins enable rabbitmq_management, 提示Applying plugin configuration to rabbit@wangzaiplus… started 6 plugins.即表示啓用成功
瀏覽器遠端存取http://192.168.1.123:15672, 出現登錄介面
注意:
如果伺服器開啓了防火牆, 則存取不了, 可以先關閉防火牆或者暴露埠
centos7檢視防火牆狀態: firewall-cmd --state, 關閉後顯示not running,開啓後顯示running
關閉防火牆: systemctl stop firewalld.service
五、開啓使用者遠端存取
rabbitmq從3.3.0開始, 預設使用者guest只允許本機存取, 即: http://localhost:15672, 如果通過ip:port存取, 會發現Login failed, 爲了讓guest使用者能夠遠端存取, 只需新建組態檔設定loopback_users即可(rabbitmq.config組態檔需手動建立), 步驟如下:
cd /etc/rabbitmq
新建組態檔: touch rabbitmq.config
vim rabbitmq.config
寫入並儲存: [{rabbit, [{loopback_users, []}]}].
重新啓動服務: service rabbitmq-server restart
重新以guest登錄, OK
目前爲止, rabbitmq服務已安裝完畢
六、rabbitmq服務常用命令
檢視rabbitmq服務狀態:
service rabbitmq-server status
啓動服務:
service rabbitmq-server start
停止服務:
service rabbitmq-server stop
重新啓動服務:
service rabbitmq-server restart
設定開機啓動:
chkconfig rabbitmq-server on
開啓管控台:
rabbitmq-plugins enable rabbitmq_management
關閉管控台:
rabbitmq-plugins disable rabbitmq_management
七、安裝步驟總結(如果你懶得看上面一堆廢話, 可以直接執行以下命令即可順利安裝好rabbitmq, 坑我都幫你踩完了)
下載erlang:
wget http://www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
安裝erlang:
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
下載socat:
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
安裝socat:
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
下載rabbitmq:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
安裝rabbitmq:
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
設定開機啓動:
chkconfig rabbitmq-server on
開啓rabbitmq服務:
service rabbitmq-server start
啓用web管理外掛:
rabbitmq-plugins enable rabbitmq_management
設定遠端存取登錄:
cd /etc/rabbitmq
touch rabbitmq.config
vim rabbitmq.config
寫入: [{rabbit, [{loopback_users, []}]}].
service rabbitmq-server restart
搞定
八、常見錯誤
無法遠端存取管理介面, rabbitmq服務安裝成功並啓動後, 瀏覽器存取http://192.168.1.123:15672發現存取不了, 有以下幾個原因:
沒有啓用管理外掛, 解決辦法: rabbitmq-plugins enable rabbitmq_management
伺服器開啓了防火牆且未開放5672、15672埠, 解決辦法: 關閉防火牆或暴露埠, 關閉防火牆命令: systemctl stop firewalld.service
很重要: 如果伺服器使用的是第三方雲服務(如騰訊雲伺服器), 設定了安全組策略, 入站規則沒有開放5672、15672埠, 那麼也會出現這個問題, 解決辦法: 登錄雲伺服器管控台, 設定安全組策略並關聯範例即可, 具體設定自行百度
如圖:
guest使用者無法遠程登錄控制檯, 參考步驟: 五、開啓使用者遠端存取