Установка RubbitMQ
Содержание
Полезные ссылки
- RabbitMQ - Урок 1. Hello world!
- RabbitMQ - Урок 2. Распределенные очереди
- RabbitMQ - Урок 3. Рассылка публикаций
- RabbitMQ - Урок 4. Селективная рассылка
- RabbitMQ - Урок 5. Рассылка по шаблону
- RabbitMQ - Урок 6. Реализация RPC шаблона
- RabbitMQ для начинающих
Установка сервера
$sudo apt install rabbitmq-server
Установка web интерфейса
$sudo rabbitmq-plugins enable rabbitmq_management $sudo service rabbitmq-server restart
И подключаемся через браузер с URL http://<ip-host>:15672
login: guest
password: guest
Сброс всех очередей в rabbitmq
rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl start_app
Команды управления пользователями
rabbitmqctl(1) manual page
По умолчанию RabbitMQ используется пользователь guest и пароль guest
Поменять пароль пользователя
Например, можно просто поменять пароль пользователю guest
abbitmqctl change_password guest newpassword
Удаление пользователя
Удаляем пользователя guest
rabbitmqctl delete_user guest
Добавление нового пользователя
Для добавление нового пользователя, например rabbit и пароль password
rabbitmqctl add_user rabbit password
Сбросить пароль пользователя
Сбросим пароль пользователю guest
rabbitmqctl clear_password guest
Команда аутентификации
rabbitmqctl authenticate_user user paswduser
Эта команда инструктирует брокера RabbitMQ аутентифицировать пользователя с именем user с помощью проверки пароля.
Просмотреть всех пользователей
rabbitmqctl list_users
Контроль доступа
Разрешения для пользователя
rabbitmqctl set_permissions [-p vhost] {user} {conf} {write} {read}
Где:
vhost - Имя виртуального хоста, которому предоставляется пользовательский доступ, по умолчанию - /.
user - Имя пользователя для предоставления доступа к указанному виртуальному хосту.
conf - Регулярное выражение, соответствующее именам ресурсов, для которых пользователю предоставляются разрешения на настройку.
write - Регулярное выражение, соответствующее именам ресурсов, для которых пользователю предоставляются права на запись.
read - Регулярное выражение, соответствующее именам ресурсов, для которых пользователю предоставляются разрешения на чтение.
Например, для пользователя user всем хостам дать все разрешения
rabbitmqctl set_permissions -p / user "/*" ".*" ".*
Или
rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*" ".*" ".*"
Эта команда инструктирует брокера RabbitMQ предоставить пользователю с именем tonyg доступ к виртуальному хосту с именем /myvhost, с разрешениями конфигурации для всех ресурсов, чьи имена начинаются с «tonyg-», а также разрешения на запись и чтение для всех ресурсов.
Удалить разрешения для пользователя
rabbitmqctl clear_permissions [-p vhost] {username}
vhost - Он имя виртуального хоста, которому запрещается доступ пользователя, по умолчанию - /.
username - Имя пользователя для отказа в доступе к указанному виртуальному хосту.
rabbitmqctl clear_permissions -p /myvhost tonyg
Эта команда инструктирует брокера RabbitMQ запретить пользователю с именем tonyg доступ к виртуальному хосту с именем /myvhost.
Просмотр разрешений для хоста
list_permissions [-p vhost]
vhost - Имя виртуального хоста, для которого можно указать пользователей, которым был предоставлен доступ к нему, и их разрешения. По умолчанию /.
Просмотр разрешений для пользователя.
rabbitmqctl list_user_permissions {username}
Установка PHP библиотели AMQP
$sudo apt install librabbitmq-dev $sudo pecl install AMQP
Если будет ругаться, что библиотека librabbitmq старая, то
$sudo apt purge librabbitmq-dev $sudo apt install cmake
Идем на https://github.com/alanxz/rabbitmq-c и качаем последнюю версию библиотеки. распаковываем в ~
cd rabbitmq-c-master mkdir build && cd build cmake .. cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. sudo cmake --build . --target install sudo pecl install AMQP
В папке /etc/php/7.0/mods-available создаем файл amqp.ini следующего содержания
; extention for rabbitmq lib ; priority = 20 extension=amqp.so
И делаем симлинки
sudo ln -s /etc/php/7.0/mods-available/amqp.ini /etc/php/7.0/apache2/conf.d/20-amqp.ini sudo ln -s /etc/php/7.0/mods-available/amqp.ini /etc/php/7.0/cli/conf.d/20-amqp.ini
Перезапускаем apache
sudo service apache2 restart