Ubuntu24 安装 RabbitMQ
-
添加官方仓库和密钥:将官方仓库添加到你的软件源列表,并导入签名密钥。
bash# 安装依赖 sudo apt-get update -y sudo apt-get install curl gnupg apt-transport-https -y # 导入 RabbitMQ 签名密钥 curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null # 配置 Ubuntu 24.04 (Noble) 的 APT 仓库 sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF ## 现代 Erlang/OTP 版本 deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-erlang/ubuntu/noble noble main deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-erlang/ubuntu/noble noble main ## 最新 RabbitMQ 版本 deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-server/ubuntu/noble noble main deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-server/ubuntu/noble noble main EOF
-
安装 Erlang 和 RabbitMQ:
bashsudo apt-get update -y sudo apt-get install -y erlang-base \ erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \ erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \ erlang-runtime-tools erlang-snmp erlang-ssl \ erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl sudo apt-get install rabbitmq-server -y --fix-missing
-
启用管理插件并创建管理员账户:
bash# 启用 Web 管理界面 sudo rabbitmq-plugins enable rabbitmq_management # 创建管理员账户(替换 your_admin 和 strong_password) sudo rabbitmqctl add_user your_admin strong_password sudo rabbitmqctl set_user_tags your_admin administrator sudo rabbitmqctl set_permissions -p / your_admin ".*" ".*" ".*"
性能优化:操作系统层面
在生产环境中,调整操作系统参数对性能至关重要。
-
提升文件描述符限制:RabbitMQ 需要处理大量连接和文件,默认的 1024 限制过低。建议通过修改 Systemd 服务配置,将限制提升至 64000 或更高。
bash# 创建服务配置目录 sudo mkdir -p /etc/systemd/system/rabbitmq-server.service.d # 写入限制配置 sudo tee /etc/systemd/system/rabbitmq-server.service.d/limits.conf <<EOF [Service] LimitNOFILE=64000 EOF # 重新加载并重启服务 sudo systemctl daemon-reload sudo systemctl restart rabbitmq-server
-
优化网络和内存参数:这些调整可以提升网络吞吐量并减少内存交换,从而提高性能。
bash# 临时调整,可将以下命令加入 /etc/sysctl.conf 以永久生效 # 增大 TCP 缓冲区 sudo sysctl -w net.core.rmem_max=16777216 sudo sysctl -w net.core.wmem_max=16777216 sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216" sudo sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216" # 降低 Swappiness 值,优先使用物理内存 sudo sysctl -w vm.swappiness=10
性能优化:RabbitMQ 自身配置
在 /etc/rabbitmq/rabbitmq.conf 文件中调整以下核心参数,可以更好地控制资源使用。
-
内存和磁盘水位线:设置内存和磁盘的告警阈值,防止 RabbitMQ 因资源耗尽而崩溃。
text# 设置内存上限为物理内存的 70% vm_memory_high_watermark.relative = 0.7 # 设置磁盘可用空间下限为 1GB disk_free_limit.absolute = 1GB
-
其他建议:
配置 Nginx 实现域名反向代理
配置 Nginx 作为反向代理,可以使用域名(如 rabbitmq.yourdomain.com)安全地访问管理界面,并且可以方便地启用 HTTPS。
-
bash
sudo apt install nginx -y sudo systemctl enable nginx sudo systemctl start nginx
-
创建 Nginx 虚拟主机配置:创建一个新的配置文件
/etc/nginx/sites-available/rabbitmq.conf,并写入以下内容(将rabbitmq.yourdomain.com替换为你的真实域名)。nginxserver { listen 80; server_name rabbitmq.yourdomain.com; # 替换为你的域名 location / { proxy_pass http://127.0.0.1:15672; # 代理到本地的管理界面端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; proxy_http_version 1.1; } }
-
bash
sudo ln -s /etc/nginx/sites-available/rabbitmq.conf /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置语法 sudo systemctl restart nginx
-
使用 Certbot 自动获取并配置 SSL 证书(强烈推荐):
bashsudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d rabbitmq.yourdomain.com # 替换为你的域名
按照提示操作,Certbot 会自动修改 Nginx 配置,启用 HTTPS 并实现自动续期。