Ubuntu如何配置RabbitMQ虚拟主机
导读:Ubuntu配置RabbitMQ虚拟主机的步骤 1. 前置准备 在配置虚拟主机前,需确保已安装RabbitMQ并启动服务。若未安装,可通过以下命令快速部署: # 更新软件包列表 sudo apt update # 安装Erlang(Rabb...
Ubuntu配置RabbitMQ虚拟主机的步骤
1. 前置准备
在配置虚拟主机前,需确保已安装RabbitMQ并启动服务。若未安装,可通过以下命令快速部署:
# 更新软件包列表
sudo apt update
# 安装Erlang(RabbitMQ依赖环境)
sudo apt install -y erlang
# 添加RabbitMQ官方APT源
echo 'deb https://dl.bintray.com/rabbitmq/debian focal main' | sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list
# 导入RabbitMQ官方GPG密钥
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
# 更新软件包列表并安装RabbitMQ
sudo apt update &
&
sudo apt install -y rabbitmq-server
# 启动RabbitMQ服务并设置开机自启
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
验证服务状态:
sudo systemctl status rabbitmq-server # 应显示"active (running)"
2. 启用管理插件(可选但推荐)
为方便通过Web界面管理虚拟主机,建议启用RabbitMQ Management插件:
sudo rabbitmq-plugins enable rabbitmq_management
启用后,可通过浏览器访问管理控制台:http://<
服务器IP>
:15672(默认用户名/密码为guest,仅限本地访问)。
3. 创建虚拟主机
使用rabbitmqctl命令行工具创建虚拟主机(以my_vhost为例):
sudo rabbitmqctl add_vhost my_vhost
验证虚拟主机是否创建成功:
sudo rabbitmqctl list_vhosts # 应显示"my_vhost"及默认虚拟主机"/"
4. 创建用户并分配权限
虚拟主机需与用户绑定权限才能访问。首先创建用户(以my_user/mypassword为例):
sudo rabbitmqctl add_user my_user mypassword
为用户分配虚拟主机权限(.*表示允许所有操作,生产环境建议细化权限):
sudo rabbitmqctl set_permissions -p my_vhost my_user ".*" ".*" ".*"
权限参数说明:
- 第一个
.*:配置权限(允许声明交换机、队列等); - 第二个
.*:写入权限(允许发布消息、创建绑定等); - 第三个
.*:读取权限(允许消费消息、读取队列等)。
5. 验证虚拟主机配置
-
通过管理控制台验证:
登录管理界面→点击"Admin"→选择"Virtual Hosts",确认my_vhost存在;点击"Permissions",确认my_user已分配权限。 -
通过命令行验证:
查看my_vhost的权限列表:sudo rabbitmqctl list_permissions -p my_vhost # 应显示"my_user"及对应的权限配置
6. (可选)将队列/交换机绑定到虚拟主机
创建队列或交换机时,需指定虚拟主机(以Python客户端为例):
import pika
# 连接RabbitMQ时指定虚拟主机
credentials = pika.PlainCredentials('my_user', 'mypassword')
parameters = pika.ConnectionParameters(
host='localhost',
port=5672,
virtual_host='my_vhost', # 关键:指定虚拟主机
credentials=credentials
)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
# 声明队列(自动绑定到my_vhost)
channel.queue_declare(queue='my_queue', durable=True)
print("Queue created in virtual host 'my_vhost'")
connection.close()
注意事项
- 权限安全:生产环境中避免使用
.*,应根据需求细化权限(如仅允许特定交换机配置、特定队列读取)。 - 虚拟主机隔离:不同虚拟主机之间完全隔离,队列、交换机、绑定均无法跨虚拟主机访问。
- 防火墙设置:若服务器启用防火墙,需开放RabbitMQ端口(默认
5672用于AMQP协议,15672用于管理界面):sudo ufw allow 5672/tcp sudo ufw allow 15672/tcp
通过以上步骤,即可在Ubuntu上完成RabbitMQ虚拟主机的配置,实现不同业务模块的消息隔离与管理。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu如何配置RabbitMQ虚拟主机
本文地址: https://pptw.com/jishu/738438.html
