一つのサーバで複数のWebサイトをたてる3つの方法

ブログ運営

私は別のブログも運営しているのですが、そのブログとこのブログは同じサーバーに同居しています。

どういう仕組みでそのようなことが実現できているのでしょうか。

私自身、分からないこともあったのでちょっと調べてみました。
調べた内容をまとめてみましたので参考にしてみてください。
※実際の設定方法までは調べていませんが、検索すればすぐに出てくるので各自調べてください。

なお、仮想OSとかコンテナとか、Webサーバに関わらず様々なサービスを同時に複数稼働できるような手法は除外しています。

IPベース

最初に紹介するのが、ネットワーク的に一番シンプルな「IPベース」でバーチャルホスト(仮想のWebサーバ)を立てる方法です。

一つのサーバに複数のIPを持たせて、それぞれのIPごとにWebサイトを割り当てるという方法です。

http://aaa.co.jp → 1.x.x.1(IPアドレス) → サイトA
http://bbb.co.jp → 1.x.x.2(IPアドレス) → サイトB

1台のサーバに複数のIPを持たせるには、LANポートを複数持たせたり、仮想IPを割り当てる方法があります。

シンプルなのはいいですが、複数のグローバルIPを持たないといけないため、維持コストが高くなってしまいます

ポートベース

次に紹介するのが「ポートベース」という手法です。

ポートとは

皆さんは普段、何気なくhttp://aaa.co.jpだったり、https://ccc.co.jpのようなWebサイトにアクセスしていると思います。

この時、私たちは意識していませんが、前者であればaaa.co.jpに対してポート80番、後者であればbbb.co.jpに443番というポートでアクセスしています

一口にサーバと言っても、Webサーバの機能だけが稼働しているとは限りません。もしかしたらメールサーバを兼ねているかもしれませんし、データベース用のサーバを兼ねているかもしれません。

そんな時に、aaa.co.jpにアクセスしても、どの機能に繋げばいいか分からないですよね?

そういったことが起こらないように、各通信ではサーバを指定するだけでなく、ポート番号も指定するようになっています。

マンションを想像してみてください。マンションはサーバで、部屋は機能です。AのWebサーバにアクセスしたければ、マンションAの80号室に訪れる必要があるのです

ポートベースの仕組み

ではポートベースでバーチャルホストを立てるというのはどういう事かというと、以下のようにポート番号をずらしてWebサーバを立てるということになります。

http://aaa.co.jp     → 1.x.x.1(IPアドレス)    
→ サイトA(80番ポート)

http://bbb.co.jp:10080 → 1.x.x.1:10080(IPアドレス)
→ サイトB(10080番ポート)

メリットはIPベースと違って追加コストがかからないことです。

デメリットは、アクセスする側がサーバ名の後に「:〇〇」とポート番号を入力して、ポート番号を指定してアクセスする必要があるという点です。これはカッコ悪くてユーザーにも不親切なので、公開サーバで使われることはほぼないと言っていいでしょう。社内などのイントラネット環境向きの手法です。

名前ベース

最後に紹介するのが「名前ベース(ネームベース)」です。

マルチドメインが可能になっているレンタルサーバがありますが、あれはこの名前ベースという手法を使っています

本ブログも、この名前ベースで一つのサーバを2つのWebサイトに分けています。

仕組みとしては、ブラウザがサーバに対してどのドメイン名でアクセスしたかを送信し、そのドメイン名に応じて適切なサイトに誘導するという方法です。

http://aaa.co.jp → 1.x.x.1(IPアドレス) → サイトA
http://bbb.co.jp → 1.x.x.1(IPアドレス) → サイトB

この方法だとコストもかからないし、ユーザーに特別な操作を強いるようなこともありません

ただし、弱点がないわけでもなく、古いブラウザはこの手法に対応していません。といっても、ネームベースが使えないようなブラウザを使っている人は皆無だと思うので、心配するほどでもないです。

まとめ

インフラエンジニアや、特にネットワークエンジニアは名前ベースという考え方が抜け落ちがちかなと思い記事を書いてみましたが、如何でしたでしょうか。

基本的には名前ベースで問題なく、名前ベースが使えない時はIPベースやポートベースを必要に応じて選択するといった感じです。

今後のブログ運営に役立つか分かりませんが、何かの助けになれば嬉しいです。

コメント

タイトルとURLをコピーしました