production.log

ピクスタ株式会社でエンジニアのマネージャーをやっている星直史のブログです。

Apache バーチャルホストの設定で2つのサイトを1つのVPSにまとめた

2つサイトを運営していますが、インフラ構成が

VPS2台・・・・・・4,500円 / 月

DBサーバ1台・・・1,500円 / 月

月額6,000円と、薄給のボクにとっては結構痛いので、VPS1台にMysqlを入れて、DBサーバーを解約 && 2つのサイトを1つのVPSにまとめることにしました。

 

用意するもの

VPS1台

サイトAのドメイン

サイトBのドメイン

Apache バーチャルホストの設定

もうね、なんで始めからこれをやらなかったのか泣けてくるくらい、簡単でした。

/etc/httpd/conf/httpd.confを下記の通り設定し、apachectl gracefulでapacheを再起動するだけでOKです。

Apache バーチャルホストの設定

※1行目のNameVirtualHost *:80を指定しないと下記のエラーが発生します。

 [warn] _default_ VirtualHost overlap on port 80, the first has precedence

 

説明

VPS のIPが 123.456.789.101だった場合、

サイトAとサイトBのドメイン設定で指定するIPを両方とも123.456.789.101に設定します。

=> http://site_Ahttp://site_BのURLを叩くと、両方とも123.456.789.101にアクセスしにいきます。

 

すると、Apacheはsite_Aからのアクセスは/www/example/app_nameA/publicを見に行くし、

site_Bからのアクセスは/www/example/app_nameB/publicを見に行きます。

ただそれだけ。