1個のさくらVPSの上にApacheのVirtualHostで複数サイトを構築する設定

1個のwebサーバで複数のサイトを立ち上げたい!!
サーバはさくらVPS1個なので、その上のApacheで複数のサイトを
立ち上げるにはApacheにVirtualHost設定が必要です。

VirtualHostのパターン

ApacheでVirtualHostを使う場合、
IP、ポート、名前で別のホストを装うことができます。

わかりやすいのはIP分割でしょうか。
1個のサーバにIPを何個も設定して、どのIPに接続しにくるかにより、
どのページを返すかDocumentRoot毎に分けられます。

次にわかりやすいのはポートでしょう。
普通httpはtpc/80番ポートを使うのですが、例えばtcp/8080番などを使い
アクセスされるポートによりコンテンツを出し分ける感じです。

最後に、名前毎かな。
個人サーバ等はこれが便利かなと思う。
IPは1個だけど、DNSさえ登録してしまえば、
その名前を使って複数のサイトを立ち上げられます。

例えばwww.exmple1.comとwww.example2.comには
DNS的に同じIPが設定されています。
でも、httpアクセスの中のホストヘッダを見分けて、
コンテンツを出し分けるとう方法です。
いやぁ~ 便利♪

これを名前ベースのバーチャルホスティングというらしい。(たぶんw)

名前ベースのVirtualHost

ということで、名前ベースでコンテンツを出し分ける設定をします。

# Listenポートを設定(一般的に80です)
Listen 80
# 全てのIPの80番で名前ベースのVirtualHost宣言!
NameVirtualHost *:80
# www.example1.comでアクセスしにきたクライアントに返すコンテンツ
<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com
# 他ディレクティブを書き換え
</VirtualHost>
# www.example2.comでアクセスしにきたクライアントに返すコンテンツ
<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.com
# 他ディレクティブ書き換え
</VirtualHost>

こんな感じです。
この設定をしてコンフィグチェックとかして、
あとはApache再起動してやればオッケー!

$ sudo service httpd configtest
Syntax OK  ←OKでました!
$ sudo service httpd restart

(1) http://www.example1.com/
(2) http://www.exapmle2.com/

(1)と(2)にアクセスした場合には見られるコンテンツを
出し分けることができるようになりました! すばらしぃ~♪

まとめ

http://httpd.apache.org/docs/2.2/ja/vhosts/examples.html
こちらにApache VirtualHostの設定が載っています。
こちらも、いや、むしろこちらを参考に!w

名前ベースのVirtualHostというのがやはりお勧め。
さくらVPSを普通に頼むと当然1個のIPなので、
そのリソースだけでオッケーだからです。

あとはDNSの設定が必要だけど、それはどんな場合でも、
新しいドメインの場合は必要だから仕方ない。
ドメイン名はどの種類のVirtualHostでも同じだから
ここは仕方ないですね~^^

よっしゃー!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です