linux 下源码安装 rabbitMQ

一:下载对应的 Erlang和RabbitMq 版本对应关系,参考如下链接 https://www.rabbitmq.com/docs/which-erlang#erlang-repositories 二:下载对应的Erlang版本 下载地址: https://www.erlang....

一:下载对应的 Erlang和RabbitMq 版本对应关系,参考如下链接

https://www.rabbitmq.com/docs/which-erlang#erlang-repositories

二:下载对应的Erlang版本

下载地址: https://www.erlang.org/downloads

根据“一”版本对应关系,我使用的rabbitmq 版本为:2.8.35(2.8的最终版)版本,所以对应最高的Erlang版本是24.3 

https://github.com/erlang/otp/releases/download/OTP-24.3/otp_src_24.3.tar.gz

三:编译安装erlang-24.3

解压erlang-24.3后进入目录

开始编译erlang-24.3 ,erlang 需要依赖ncurses库,需要安装

apt install libncurses-dev

然后 ./configure --prefix=/usr/local/erlang-24.3;make;make install

安装好后,把erlang的bin目录加入到系统环境变量中,在/etc/profile.d/erlang.sh 中加入

ERLANG_HOME=/usr/local/erlang-24.3

export PATH=$PATH:$ERLANG_HOME/bin

然后 source /etc/profile

通过systemctl启动rabbitmq时 会提示erl命令找不到,需要做一个软链到 /usr/bin下

ln -s /usr/local/erlang-24.3/bin/erl /usr/bin/

四:下载rabbitmq,我这里安装的是2.8的最终版2.8.35

通过如下页面下载:https://github.com/rabbitmq/rabbitmq-server/releases

我这里下载的rabbitmq的二进制版。

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.35/rabbitmq-server-generic-unix-3.8.35.tar.xz

解压到指定目录后,

然后把rabbitmq的sbin目录加入到系统变量中 ,比如:/etc/profile.d/rabbitmq.sh 中加入

RABBITMQ_HOME=/data/midsoftware/rabbitmq-server-3.8.35

PATH=$PATH:$RABBITMQ_HOME/sbin:$RABBITMQ_HOME/escript

备注: escript 也要加入环境变量,不让,执行 rabbitmqctl 时候提示找不到escript 目录


使用  rabbitmq-server -detached 试着启动rabbitmq服务

可以通过rabbitmqctl stop 停止服务

rabbitmq启动后,Erlang会自动启动epmd服务,停止 rabbitmq服务时候,这个服务不受影响,

五:建立rabbitmq 账号

此账号需要保留用户目录 useradd rabbitmq -s /sbin/nologin   不能加-M参数,因为rabbitmq启动时候,会向用户“家”目录写入cookie

此cookie名字为:.erlang.cookie,用户家目录和当前工作目录各存一份,如果两份内容不一致,会报错,使用用户家目录中的替换当前目录中的.erlang.cookie 然后重启rabbitmq服务即可

把rabbitmq目录权限更改为rabbitmq  chown -R rabbitmq:rabbitmq /data/midsoftware/rabbitmq-server-3.8.35

六:使用systemctl启动服务器

编辑rabbitmq-service.service 脚本放到 /usr/lib/systemd/system 下

[Unit]

Description=RabbitMQ Messaging Server

#After=network.target epmd@0.0.0.0.socket

#Wants=network.target epmd@0.0.0.0.socket

[Service]

#Type=notify

User=rabbitmq

Group=rabbitmq

#UMask=0027

#NotifyAccess=all

TimeoutStartSec=600

LimitNOFILE=65536

#SyslogIdentifier=rabbitmq

Restart=on-failure

RestartSec=10

WorkingDirectory=/data/midsoftware/rabbitmq-server-3.8.35

ExecStart=/data/midsoftware/rabbitmq-server-3.8.35/sbin/rabbitmq-server

ExecStop=/data/midsoftware/rabbitmq-server-3.8.35/sbin/rabbitmqctl stop

[Install]

WantedBy=multi-user.target


通过systemctl start rabbitmq-service.service 启动服务器,观察是否正常启动,如果不能,根据提示,解决问题

七:命令新建用户,开启网页插件

7.0 开启网页管理插件

rabbitmq-plugins enable rabbitmq_management

7.1 查看所有用户   

rabbitmqctl list_users

7.2 添加用户 

 rabbitmqctl add_user admin Mtianhui123

 7.3 设置tag

 rabbitmqctl set_user_tags admin administrator

7.3 配置权限   

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

7.4 修改密码

rabbitmqctl change_password admin admin

7.5 查看用户权限

rabbitmqctl list_user_permissions admin

八,添加延迟队列插件

到https://www.rabbitmq.com/community-plugins链接搜取插件,然后下载合适版本,我这里下载支持erlang 24 的 3.8.17的版本延迟队列插件
下载地址如下:
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.8.17/rabbitmq_delayed_message_exchange-3.8.17.8f537ac.ez

把插件cp到rabbitmq插件目录 ,进入插件目录:
cp /root/rabbitmq_delayed_message_exchange-3.8.17.8f537ac.ez ./
启用延迟队列插件,这不需要输入后面版本号
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
然后重新启动rabbitmq服务即可

九:通过代理让外部访问rabbitmq 控制台

在nginx配置文件中加入如下代码片段:

location /rabbitmq/ {
        proxy_pass http://127.0.0.1:15672/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
         proxy_redirect off;
    }

然后重启nginx即可


  • 发表于 2024-08-28 21:22
  • 阅读 ( 82 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章