1. 配置文件路径与格式
RabbitMQ在Debian上的主要配置文件为/etc/rabbitmq/rabbitmq.conf
(新版本推荐),旧版本可能使用rabbitmq.config
(Erlang语法)。修改配置文件后需重启服务(sudo systemctl restart rabbitmq-server
)使变更生效。
2. 端口配置
5672
(明文传输),管理界面默认端口为15672
(HTTP)。5671
端口(AMQPS)。rabbitmq.conf
修改端口:listeners.tcp.default = 5672
(明文)、listeners.ssl.default = 5671
(加密)。3. 防火墙规则
ufw
或iptables
限制访问:仅开放必要端口(如5672
、15672
),禁止未授权IP连接。ufw
):sudo ufw allow 5672/tcp
(AMQP)、sudo ufw allow 15672/tcp
(管理界面)、sudo ufw enable
(启用防火墙)。4. TLS/SSL加密
openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.crt
)、配置rabbitmq.conf
:ssl_listeners = [5671]
ssl_options.cacertfile = /path/to/ca_certificate.pem
ssl_options.certfile = /path/to/server_certificate.pem
ssl_options.keyfile = /path/to/server_key.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true
```。
5. Erlang Cookie同步(集群环境)
/var/lib/rabbitmq/.erlang.cookie
文件需保持一致(权限设为400
,属主为root:rabbitmq
)。sudo scp /var/lib/rabbitmq/.erlang.cookie node2:/var/lib/rabbitmq/.erlang.cookie
,随后修改权限。6. 内存与文件描述符限制
vm_memory_high_watermark
设置内存高水位线(如0.6
表示60%系统内存),超过则触发流控;vm_memory_high_watermark_paging_ratio
设置内存不足时消息持久化的比例(如0.5
表示50%时持久化)。file_descriptors.max = 65536
),避免连接数过多导致服务崩溃。7. 用户与权限管理
guest
(默认密码guest
,仅允许本地连接),创建新用户并设置强密码:sudo rabbitmqctl add_user admin strongpassword
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
configure
、write
、read
)。8. 网络访问控制
rabbitmq.conf
的listeners
参数限制监听地址:listeners.tcp.default = 127.0.0.1
(仅本地访问)或listeners.tcp.default = 0.0.0.0
(允许所有IP,需配合防火墙限制)。sudo ufw allow from 192.168.1.0/24 to any port 5672
。