ちょっと検証が必要だったので、RabbitMQのインストールを行いました。

前提

以下の環境で動いています。

  • Ubuntu 20.04
  • Apache 2.4系

また、本件ではリバースプロキシ化も実施するので、

  • それに合わせたドメイン
  • ドメインに沿った証明書

をインストール済みです。

さっくりとした手順

  1. レポジトリを追加します。
  2. RabbitMQをインストールします。
  3. 管理コンソールを有効化します。
  4. 管理コンソールのリバースプロキシ化させます。
  • 参考にした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
  • アクセス確認

ブラウザから

設定したドメインにアクセスし、以下の画面を確認します。

  1. 設定した管理者アカウントでログインできること
  2. 以下の管理コンソールが出ること