Kenichi Maehashi's Blog
脳内コアダンプ
VirtualHost を書かずにバーチャルホストする黒魔術 (Revised)
Thursday | January 21, 2010
|
以前書いた記事の構成が、某運用環境で採用されることになりました。
再掲すると、UserDir public_html RewriteEngine on RewriteMap vhostusers txt:/path/to/vhostusers.txt RewriteCond ${vhostusers:%{HTTP_HOST}} .+ RewriteRule ^/(.*)$ /~%0/$1 [PT,NS] というように、VirtualHost コンテキストを使わずに自前で HTTP_HOST を読んで、UserDir に rewrite してしまえば、- バーチャルホストがたくさんある環境でも設定は 1 個で済む (マッピングファイルとして外部化できる)
- サブドメインを増やすのに Apache の再起動が不要 (マッピングを書き換えれば瞬時に反映される)
- しかも、サブドメインごとに CGI などの実行権限を切り替えられる (UserDir だから suEXEC できる)
といいことずくめな設定です。サブドメインとユーザ間のマッピングは RewriteMap によって実現されます。この例では、/path/to/vhostusers.txt に# Subdomain User Name www.example.com user001 first.example.com user001 second.example.com user002 third.example.com user003 のように書くことができます。
これを応用すれば、SNI を使わなくても、ワイルドカード SSL を使って複数の VirtualHost を 1 つの IP アドレスでホストすることができますね(同じドメイン配下のサイトであれば)。
*
追記: これだと DirectorySlash でダメなケースがありますね。後日追記します。
|
| コメント (0)
|
<< 前ページ[1]
トップページに戻る
Copyright © 2006-2021 Kenichi Maehashi, All Rights Reserved.