ちょっと検証が必要だったので、RabbitMQのインストールを行いました。
前提
以下の環境で動いています。
また、本件ではリバースプロキシ化も実施するので、
をインストール済みです。
さっくりとした手順
- レポジトリを追加します。
- RabbitMQをインストールします。
- 管理コンソールを有効化します。
- 管理コンソールのリバースプロキシ化させます。
https://www.vultr.com/docs/install-rabbitmq-server-ubuntu-20-04-lts/
レポジトリを追加します。
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
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を確認します
sudo systemctl restart apache2.service
ブラウザから
設定したドメインにアクセスし、以下の画面を確認します。
- 設定した管理者アカウントでログインできること
- 以下の管理コンソールが出ること