ちょっと検証が必要だったので、RabbitMQのインストールを行いました。
前提
以下の環境で動いています。
- Ubuntu 20.04
- Apache 2.4系
また、本件ではリバースプロキシ化も実施するので、
- それに合わせたドメイン
- ドメインに沿った証明書
をインストール済みです。
さっくりとした手順
- レポジトリを追加します。
- RabbitMQをインストールします。
- 管理コンソールを有効化します。
- 管理コンソールのリバースプロキシ化させます。
- 参考にしたWebサイト
https://www.vultr.com/docs/install-rabbitmq-server-ubuntu-20-04-lts/
レポジトリを追加します。
- RabbitMQ追加
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
echo "deb https://dl.bintray.com/rabbitmq-erlang/debian focal erlang-22.x" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
インストールを実施します。
- レポジトリを追加したのでパッケージのアップデート
sudo aptitude update
- RabbitMQのインストール
sudo apt-get install rabbitmq-server -y --fix-missing
- インストール確認
systemctl status rabbitmq-server.service
Active(Running)を確認します。
- サービス有効化
sudo systemctl enable rabbitmq-server
RabbitMQの管理コンソールを有効化します。
- コンソール有効化
sudo rabbitmq-plugins enable rabbitmq_management
- 管理者とパスワード設定
sudo rabbitmqctl add_user admin password
ユーザー名(admin)やパスワード(password)は環境に合わせて適切なものを設定してください。
- 管理権限付与
sudo rabbitmqctl set_user_tags admin administrator
adminの部分はユーザー名を指定します。
- 管理コンソールアクセス確認
ブラウザから
http://サーバのIP:15672
と入れることでログインできるようになります。
リバースプロキシの実施
- ログ格納ディレクトリの追加
sudo mkdir /var/log/mq_console
適切なディレクトリを指定してください。
- ディレクトリの所有者変更
sudo chown www-data:www-data mq_console
- 設定ファイル作成
- 作成するファイル(要管理者権限)
/etc/apache2/site-available/rabbitmq.conf
- 作成内容
<VirtualHost _default_:80>
# ドメイン名を指定します
ServerName 【hoge.example.com】
# HTTPアクセスを強制的にHTTPSにリダイレクトします
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost _default_:443>
# ドメイン名を指定します
ServerName 【hoge.example.com】
# アクセスログを指定します
CustomLog /var/log/mq_console/console_access.log combined
ErrorLog /var/log/mq_console/console_error.log
#SSL設定
SSLEngine on
# SSLを有効化します
Protocols h2 http/1.1
# SSL証明書を指定します
SSLCertificateFile /etc/certs/hoge.example.com.crt
# 秘密鍵を指定します
SSLCertificateKeyFile /etc/private/hoge.example.com.key
# Header に Host: example.com を追加するため
ProxyPreserveHost On
# HTTPS利用時: Header に x-forwarded-proto: https を追加するため
RequestHeader set x-forwarded-proto 'https'
ProxyPass / http://localhost:15672/
ProxyPassReverse / http://localhost:15672/
</VirtualHost>
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:EC6-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
- 設定ファイル追加
sudo a2ensite rabbitmq.conf
- 設定確認
sudo apache2ctl configtest
Syntax OKを確認します
- Webサービス再起動
sudo systemctl restart apache2.service
- アクセス確認
ブラウザから
設定したドメインにアクセスし、以下の画面を確認します。
- 設定した管理者アカウントでログインできること
- 以下の管理コンソールが出ること