結論
nginx
を設定する部分と、Apache2
を設定する部分の二段階に分かれます。以下、abc.mydomain.jp
とxyz.mydomain.jp
を以下のように振り分けることを目的とします。
abc.mydomain.jp
にアクセスが来たらApache2
で提供している/var/tmp/abc
配下を見せるxyz.mydomain.jp
にアクセスが来たらApache2
で提供している/var/tmp/xyz
配下を見せる
また、nginx
はポート80番、Apache2
はポート12345番で受けているものとします。
1. nginx の設定
まずはnginx
を設定します。/etc/nginx/sites-enabled/
配下に設定ファイルを作ります。ファイル名は何でもよいので、ここではabc.conf
とxyz.conf
とします。
abc.conf
はこんな感じになります。
server { (省略) server_name abc.mydomain.jp location / { proxy_pass http://localhost:12345/; (省略) } }
xyz.conf
も作りますが、その内容は上記のabc
の部分をxyz
に変えるだけで OK です。
双方のファイルを作る際に注意する点は、Apache2側への振り分け先はApache2のサーバルートになるということです。「Apache2側で」server_name
を解釈してどこのローカルディレクトリを見せるかを決めるので、nginx
側ではどこのローカルディレクトリを見せるのかということを考える必要がありません。
2. Apache2 の設定
次にApache2
の設定をします。ここでは/etc/apache2/sites-available/000-default.conf
に一直線にベタ書きします*1。/etc/apache2/sites-available/000-default.conf
を以下のように書きます。
(既存の部分は省略。既存の部分の末尾に以降を書き加える) <VirtualHost *:12345> (省略) ServerName abc.mydomain.jp DocumentRoot /var/tmp/abc (省略) </VirtualHost> <VirtualHost *:12345> (省略) ServerName xyz.mydomain.jp DocumentRoot /var/tmp/xyz (省略) </VirtualHost>
3. nginx と Apache2 を再起動する
ここまで設定ができたらnginx
とApache2
を再起動しましょう。service
コマンドは適宜読み替えを。
$ sudo service nginx restart $ sudo service apache2 restart
4. abc.mydomain.jp と xyz.mydomain.jp にアクセスして確認する
再起動が終わったら正しくアクセスできるか確認します。特に相対パスでの動作が正しく行われているかを確認しましょう。
*1:設定ごとにファイルを分割した方がよいです