前回投稿した
ApartmentGemを使ってテナント型Webアプリケーション構築のサンプル (PostgreSQL版)
にてワイルドカードレコードを作ってApartmentのCreateを呼び出せばOKと書いていましたが、
Virtual Hostの設定が抜けていたので片手落ちでした。
/etc/httpd/conf.d/multi_tenant.conf
# ファイル名は適当です。
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName www.example.com
ServerAlias *.example.com # ここ重要。ここでxxx.example.comのアクセスを受ける宣言をしている。
DocumentRoot /path to your rails app/public
<Directory "/path to your rails app/public">
AllowOverride All
Options FollowSymLinks Includes
Require all granted
</Directory>
</VirtualHost>
上記を設定すると、定義されていないサブドメインのアクセスがすべて上記VirtualHostに寄せられます。この仕組みを使うことでマルチテナントなアプリケーションを構築することが簡単になります。