在当前的IT技术生态中,Linux系统、RabbitMQ以及消息队列已成为构建高效、可靠分布式系统的重要组成部分。Linux作为开源操作系统,以其稳定性和灵活性受到广泛青睐,而RabbitMQ作为开源消息中间件,以其高可用性、可扩展性和强大的消息传递机制,成为企业级应用中不可或缺的组件。
也是因为这些,了解如何在Linux环境下安装和配置RabbitMQ,不仅有助于提升系统的消息处理能力,也能够为开发者提供更高效的开发和运维体验。本文将从安装环境准备、依赖安装、服务配置、集群搭建、安全设置以及性能优化等方面,系统性地阐述RabbitMQ在Linux系统的安装与配置过程。 一、安装环境准备 在开始安装RabbitMQ之前,必须确保Linux系统已经安装了必要的依赖库,并且配置了正确的环境变量。推荐使用Ubuntu 20.04 LTS或CentOS 7/8作为安装平台,这些版本均提供良好的支持和丰富的社区资源。
1.1系统更新与基础环境配置 ```bash sudo apt update sudo apt upgrade -y ``` 安装基础软件包,包括`libssl1.0-dev`、`libxml2-dev`等,这些是RabbitMQ运行所必需的依赖: ```bash sudo apt install -y libssl1.0-dev libxml2-dev build-essential ```
1.2安装Elasticsearch(可选) 如果计划使用RabbitMQ与Elasticsearch集成,可先安装Elasticsearch。Elasticsearch提供日志分析和监控功能,有助于提升系统运维效率: ```bash sudo apt install -y elasticsearch ```
1.3配置环境变量 在`~/.bashrc`或`~/.zshrc`中添加以下内容: ```bash export RABBITMQ_HOME=/usr/local/rabbitmq export PATH=$RABBITMQ_HOME/bin:$PATH ``` 然后执行: ```bash source ~/.bashrc ``` 二、安装RabbitMQ
2.1下载RabbitMQ安装包 RabbitMQ提供多种安装方式,推荐使用源码编译安装,以确保系统兼容性和稳定性。访问[RabbitMQ官方下载页面](https://www.rabbitmq.com/download.html),下载对应版本的源码包。 ```bash wget https://www.rabbitmq.com/releases/rabbitmq-server-3.10.10.tar.gz tar -xzvf rabbitmq-server-3.10.10.tar.gz ```
2.2安装RabbitMQ 进入解压后的目录并执行安装脚本: ```bash cd rabbitmq-server-3.10.10 sudo make install ``` 安装完成后,RabbitMQ服务将自动启动,可以通过以下命令检查服务状态: ```bash systemctl status rabbitmq-server ```
2.3配置RabbitMQ 安装完成后,RabbitMQ默认配置文件位于`/etc/rabbitmq/rabbitmq.conf`。可以通过编辑此文件来配置监听端口、内存限制、权限等。 ```bash sudo nano /etc/rabbitmq/rabbitmq.conf ``` 修改以下配置项: ```conf listeners.ssl.port=5671 memory_limit=500m ``` 保存并退出,然后重启服务: ```bash sudo systemctl restart rabbitmq-server ``` 三、服务配置与启动
1.1配置用户与权限 RabbitMQ默认使用`guest`用户登录,密码为`guest`。如果需要设置其他用户,可编辑`/etc/rabbitmq/rabbitmq.conf`,添加以下配置: ```conf users.rabbitmq.user=guest users.rabbitmq.password=guest ```
3.2启动RabbitMQ服务 使用以下命令启动RabbitMQ服务: ```bash sudo systemctl start rabbitmq-server ``` 检查服务状态: ```bash sudo systemctl status rabbitmq-server ``` 如果服务未启动,可尝试手动启动: ```bash sudo rabbitmq-service start ``` 四、集群搭建 RabbitMQ支持集群部署,以提高系统的可用性和性能。
下面呢是搭建RabbitMQ集群的步骤。
4.1配置集群节点 在多个节点上安装RabbitMQ,确保每个节点的`rabbitmq.conf`文件中包含相同的`node_name`和`cluster_name`。 ```bash sudo nano /etc/rabbitmq/rabbitmq.conf ``` 配置如下: ```conf node_name=cluster-node-1 cluster_name=cluster1 ```
4.2启动集群节点 在每个节点上执行以下命令启动RabbitMQ服务: ```bash sudo systemctl start rabbitmq-server ```
4.3验证集群状态 使用`rabbitmqctl`命令检查集群状态: ```bash rabbitmqctl cluster_status ``` 如果显示集群已成功建立,则表示集群搭建完成。 五、安全设置 RabbitMQ提供了丰富的安全机制,包括权限控制、SSL加密、访问控制等。
5.1配置SSL加密 在`rabbitmq.conf`中配置SSL参数: ```conf ssl_certificate_file=/etc/rabbitmq/ssl/ssl.crt ssl_certificate_key=/etc/rabbitmq/ssl/ssl.key ssl_listen_port=5672 ssl_listen_port=5671 ```
5.2配置访问控制 在`rabbitmq.conf`中设置访问控制规则,限制特定IP地址的访问: ```conf vhosts. = {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [ {vhosts, [