RabbitMQ 伺服器在安裝之前需要安裝 erlang。
最新版本的 RabbitMQ 3.8.0 需要 Erlang 21.3 以上的版本支援。
在這裡,我們需要在你的 CentOS 中安裝 Erlang 21.3.8.8 版本。
下載下傳位址和軟體更新
Erlang 21.3.8.8 版本的下載下傳位址,請參考連結:
https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-21.3.8.8-1.el7.x86_64.rpmRabbitMQ 3.8.0 的下載下傳位址,請參考連結:
https://www.rabbitmq.com/install-rpm.html使用登入上你的 CentOS 7 伺服器後,首先需要檢視你的伺服器是否安裝了 wget,如果沒有安裝 wget,請運作 yum install wget 進行安裝。
yum install wget
當 wget 安裝完成後,運作
yum update
來更新你的伺服器。
安裝 Erlang
首先你需要下載下傳 Erlang ,然後進行安裝,在上面提到的位址
中的右側有一個 wget 的位址。
你可以運作
wget --content-disposition
https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-21.3.8.8-1.el7.x86_64.rpm/download.rpm來進行下載下傳。
當你下載下傳到你的本地計算機後,運作指令
yum localinstall rabbitmq-server-3.8.0-1.el7.noarch.rpm
來安裝你下載下傳的 rpm 包。
當你安裝完成後,你可以運作指令
erl -version
來檢視你安裝的 erl 版本。
在這裡,你可以看到這顯示的版本低 Erlang emulator 版本,與你下載下傳的 Erlang 版本是不同的。
安裝 RabbitMQ
運作下面的指令,将 RabbitMQ 下載下傳到你伺服器上。
wget
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.0/rabbitmq-server-3.8.0-1.el7.noarch.rpm當你下載下傳完成後,你需要運作下面的指令來将 Key 導入。
rpm --import
https://www.rabbitmq.com/rabbitmq-release-signing-key.asc使用 yum 進行本地安裝,運作指令:
當安裝完成後,你可以使用指令來啟動 rabbitmq 伺服器:
systemctl start rabbitmq-server
RabbitMQ 防火牆配置
RabbitMQ 的運作需要一系列的端口。是以你需要配置你的防火牆将下面的端口打開。
如果你使用的是 firewalld,那麼請依次執行下面的指令。
打開防火牆端口:
firewall-cmd --zone=public --permanent --add-port=4369/tcp
firewall-cmd --zone=public --permanent --add-port=25672/tcp
firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
firewall-cmd --zone=public --permanent --add-port=15672/tcp
firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
firewall-cmd --zone=public --permanent --add-port=1883/tcp
firewall-cmd --zone=public --permanent --add-port=8883/tcp
将防火牆配置重新載入:
firewall-cmd --reload
絕大部分情況,當你執行完上面的指令後,你的 RabbitMQ 應該能夠正常通路了。
如果你的伺服器還啟用了 SELinux 的話,你還需要執行下面的指令來讓讓 RabbitMQ 伺服器能夠接收發送網絡資料:
setsebool -P nis_enabled 1
RabbitMQ 設定自動啟動
在安裝完成後,我們希望 RabbitMQ 能開機自動啟動。
請執行下面的指令,來讓 RabbitMQ 随着計算機開機後自動啟動:
systemctl enable rabbitmq-server
使用下面指令檢視 RabbitMQ 的程序運作狀态:
systemctl status rabbitmq-server
根據伺服器的不同,會有不同的輸出,我們的輸出如下,表示 RabbitMQ 目前是正在運作的。
[root@vps263579 yhu]# systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2019-10-11 14:10:14 EDT; 9h ago
Main PID: 14895 (beam.smp)
Status: "Initialized"
CGroup: /system.slice/rabbitmq-server.service
├─14895 /usr/lib64/erlang/erts-10.3.5.6/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true -- -root /usr/lib64/erlang -progn...
├─15123 /usr/lib64/erlang/erts-10.3.5.6/bin/epmd -daemon
├─15259 erl_child_setup 32768
├─15280 inet_gethost 4
└─15281 inet_gethost 4
RabbitMQ 啟用 Web 管理界面
在預設的情況下 RabbitMQ 的 Web 管理控制台是沒有啟用的,你需要通過下面的指令來進行啟用。
安裝 Web 管理界面的插件:
rabbitmq-plugins enable rabbitmq_management
提供 RabbitMQ 使用者和對使用者使用的權限進行賦權:
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
分别執行下面的指令:
rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin "." "." ".*"
針對上面指令的解釋是,第一個指令建立了一個 admin 的使用者,這個使用者使用的密碼為 StrongPassword。
你可以使用不同的使用者名,在我們執行的上面的指令中,使用者登入使用的密碼為字元 StrongPassword,你可以将這個字元修改為其他的字元,或者你也可以登入成功後在 UI 界面中進行修改。
後面的話是針對這個使用者進行賦權。
當上面指令執行成功後,你可以重新開機你的 RabbitMQ,然後通過浏覽器進行登入。UI 界面使用的端口是 15672。是以通路的 URL 為你伺服器的位址 + 15672。
http://Your_Server_IP:15672/如果一切正常,你應該能夠看到下面的登入界面:
如果你不能通路下面的登入界面,有可能是你的伺服器防火牆。
最簡單的辦法是先禁用伺服器的防火牆以确定所有的程序是正常運作的。
如果你登入成功後,你應該能夠看到下面 RabbitMQ 的運作界面:
https://www.cwiki.us/display/RabbitMQZH/Install+RabbitMQ+Server+on+CentOS+7