サブドメインで複数サイト運用している時の楽なnginxの設定

スポンサーリンク

例えば、aaa.com、というドメインで、
site1.aaa.com
site2.aaa.com
….
という運用をしていて、それぞれ別コンテンツのwordpressだった場合、Apacheだとsite1,site2それぞれ別のVirtualHostディレクティブを延々書く、というのが普通でした。けどnginxだと楽できます。

こういう風に書けます。

スポンサーリンク
server {
    listen 80;
    server_name .aaa.com;
    root    /www/$host/httpdocs;
    index   index.php index.html index.htm;
    access_log   /www/$host/logs/access.log;
}

server_nameのところのドット始まりでサブドメインを全て受けて、DOCUMENT_ROOTに当たるところの指定は$hostでそれぞれ置き換えます。ログも同じ。

ただerror_logだけ自分の環境では出来なかったので、そこは割愛しました。ま、error_logはひとかたまりの方が見るのは楽だと思いますが。

これでDNSも*.aaa.comで指定しておけば、/www/***.aaa.com/を増やしていくだけでぽこぽこサイトが量産できる、という話です。

<追記>
server_nameのところは複数ドメイン書けるので、各サイトのDOCUMENT_ROOT以下の構成が全く一緒であればサブドメインだけでなく複数ドメイン書けました。

server .aaa.com bbb.net ccc.org;

でも可。

スポンサーリンク