公開用Redmine等で取得しているreisalin.com。今回、新たに「ryza.jp」を取得しました。
そこで、「1つのRedmineサイトに対して、別のドメインからアクセス可能にする」方法を取ったのでメモに残します。
やったこと
の両方からアクセスできるようにする。
環境
- Ubuntu 24.04
- Apache 2.4
- Redmine 5.1
- (DB等は割愛)
以下のように設定しています。
https://atelier.reisalin.com/projects/zettel/knowledgebase/articles/19
準備
- DNS設定で、両方のドメインから同一のIPが引けるように設定を行いました。
- ワイルドカード証明書を取得しました。
実施手順
ディレクトリ移動
cd /etc/apache2/sites-available && pwd
ファイルコピー
sudo cp -pi atelier.conf atelier_ryza.jp.conf
ファイル編集
- 主な編集
-servername atelier.reisalin.com
+servername atelier.ryza.jp
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
- CustomLog /var/log/atelier/atelier_access.log combined env=!dontlog
+ CustomLog /var/log/atelier_ryza/atelier_access.log combined env=!dontlog
-SSLCertificateFile /etc/certs/reisalin.com.crt
-SSLCertificateKeyFile /etc/private/reisalin.com.key
+SSLCertificateFile /etc/certs/ryza.jp.crt
+SSLCertificateKeyFile /etc/private/ryza.jp.key
かなり単純な編集です。すなわち、コピーした後で
- servernameを変える
- ログの出力先を必要に応じて追加する
- 証明書と秘密鍵をドメインに応じたものに変える
.conf有効化と反映
- .conf有効化
sudo a2ensite atelier_ryza.jp.conf
- 整合性確認
sudo apache2ctl configtest
Syntax OK
を確認します。
Webサービス再起動
- サービス再起動前確認
systemctl status apache2.service
active(running)
を確認します。
- サービス再起動
sudo systemctl restart apache2.service && $?
0
を確認します。
- サービス再起動後確認
systemctl status apache2.service
active(running)
を確認します。
確認
以下、両方のサイトにアクセスします。
それぞれで同じコンテンツが見えればOKです。
備考
なぜ、このマルチドメインがうまくいったか?
Redmineのプログラムが、内部処理としてURLを参照しないというある種のおおらかさに救われました。また、リンクの参照なども(明示しない限りは)相対パスで記述されるため、混乱も少なかったと思います。
これが、他の(特にLalavelフレームワークのようなPHP環境)だとAPP_URL
が関係するため、両立は今回のように上手くいきません。別途、リバースプロキシーを立てるなどの配慮が必要です。
コメントを残す