464 / 1,546
様々な気付き
1つのIPアドレス上で複数のウェブサイトを名前ベースのバーチャルホストで運用するように設定しよう。
しおりを挟むこんな記事見つけた。
↓↓↓↓↓
ハウツー:Apacheでバーチャルホストを設定する
2007年8月27日10:47 James-Lees(2007年8月15日(水))
1台のウェブサーバ上で1つのサイトを運用するというのも十分に厄介な作業になり得るが、複数の顧客のために複数のサイトをホストする必要がある場合には下手に設定すると非常に厄介なことになる。Apacheを使用しているなら、バーチャルホストを設定することで作業を楽に行なうことができる。バーチャルホストを使用すれば、1つのIPアドレス上で複数のドメインを管理することができるようになり、「http://あなたのサイト.com/バーチャルホスト関連/顧客のディレクトリ/ファイル名.html」のようなURLではなく「http://顧客のドメイン.com/ファイル名.html」のようなURLで指定することが可能になり、「/srv/www/htdocs/バーチャルホスト関連/顧客のディレクトリ」といったファイル構成でドメイン転送の設定をせずに済ませることができるようになる。
Apacheが正しくインストールされていれば、バーチャルホストの設定はApacheの設定ファイルを編集することで簡単に行なうことができる。/etc/apache2ディレクトリにはhttpd.conf、error.conf、server-tuning.confなど数多くの設定ファイルがある。これらのファイルは一般ユーザには読み取りのみ可の設定になっているため、ファイルを変更するためにはsudoやsuを使用してroot権限を得る必要がある。
/etc/apache2/httpd.confを開いて以下のような行を見つけよう。
Include /etc/apache2/vhosts.d/*.conf
上記の行を変更して、.confファイルを具体的に指定するようにする。ここでは、後ほど作成するvhost.confというファイルを指定する。
Include /etc/apache2/vhosts.d/vhost.conf
変更が完了したら、ファイルを保存しよう。次に再びroot権限で、/vhosts.d/にあるvhost.templateファイルの名前を以下のように変更してvhost.confを作成する。
# mv vhost.template vhost.conf
それではvhost.confファイルを編集して、1つのIPアドレス上で複数のウェブサイトを名前ベースのバーチャルホストで運用するように設定しよう。まず始めに、「NamevirtualHost *」としてバーチャルホスト用のディレクティブを追加する。なおアスタリスクはワイルドカード文字であり、すべてのアドレスを表わす。次に以下のようにして、NamevirtualHostディレクティブの下に1つめのバーチャルホストを追加しよう。
NamevirtualHost *
<VirtualHost *>
ServerAdmin youremail@yoursite.com
DocumentRoot /srv/www/htdocs/directory_of_your_choice/
ServerAlias yourdomain.com *.yourdomain.com
<virtualHost>
最初の部分(<VirtualHost *>)は、バーチャルホストを定義するブロックを開始するためのタグだ。ServerAdminは、404などのエラーが起こった場合に管理者の電子メールアドレスを表示するための設定だ。DocumentRootは、定義するサイトのルートディレクトリで、例えば私の場合、これまでにホストしたサイトはすべて「/srv/www/htdocs/バーチャルホスト関連/サイト名/」の中に各サイト用のファイルを置くようにしていた。次はServerAliasまたはServerNameで、サイトを閲覧したりサイトにアクセスするために使用することができる名前を指定する。ServerAliasやServerNameごとに異なるDocumentRootを指定することによって、それぞれのドメイン名に対応するそれぞれ異なるページを表示させることができる。上記でServerAliasに2つのエントリがある理由は、サーバが複数のServerNameで呼び出されることがしばしばあるからだ。そのような場合には、ServerAliasに複数のアドレスを設定しておくことができる。なおワイルドカードは、.yourdomain.comの前に何が指定されても良いようにするために使用している。
それでは、(1つはサーバのメインのIPアドレス、もう1つはlocalhost(127.0.0.1)上に)複数のバーチャルホストを2つの異なるNameVirtualHostブロックを使って設定したい場合はどうなるだろうか。コードは以下のようになる。
NameVirtualHost *
<VirtualHost *>
ServerAdmin admin@mixfevers.com
DocumentRoot /srv/www/htdocs/
ServerAlias mixfevers.com *.mixfevers.com
</VirtualHost>
<VirtualHost *>
ServerAdmin admin@snapnshare.com
DocumentRoot /srv/www/htdocs/snapnshare/
ServerAlias snapnshare.com *.snapnshare.com
</VirtualHost>
<VirtualHost *>
ServerAdmin admin@boomerwebzine.com
DocumentRoot /srv/www/htdocs/~/boomer/
ServerAlias boomerwebzine.com *.boomerwebzine.com
</VirtualHost>
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
DocumentRoot /srv/www/htdocs/
ServerName localhost
</VirtualHost>
変更を有効にするためには、設定ファイルを保存した後、Apacheをroot権限で再起動する必要がある。
# /etc/init.d/apache2 restart
上記の設定は、1台のサーバ上で複数のサイトをホストする小企業や、ウェブサイトをデザインしてホストしたいホビイスト向けとしてうまく機能するだろう。特定のドメイン名に関するリクエストに対してどのページを表示したらいいのかを設定しているので、IPアドレスが静的な場合だけでなく動的な場合にもこの設定を使うことができる。
なおApacheプロジェクトによって、様々なバーチャルホストの設定/管理についての文書が提供されている。
James Leesはウェブサイト開発者。ネットワークエンジニアリングとウェブ開発を学ぶために大学へ行きたいと考えている。一途なLinuxユーザ。
Linux.com 原文
Web技術 デベロッパー
※ 転載ここまで。
機械音痴で、いまいち意味が理解出来ず。
vhostsが、気になったから、調べた。
vhostsは、バーチャルホストを設定する時に、表示される言葉だった。
クリックしたら、妨害画面。
◎注目記事
《Include /etc/apache2/vhosts.d/*.conf
上記の行を変更して、.confファイルを具体的に指定するようにする。ここでは、後ほど作成するvhost.confというファイルを指定する。》
バーチャルホストが作れるってことは、
IP 153.254.170.6と、nogisawa .net は同一人物?
応援ありがとうございます!
0
お気に入りに追加
9
1 / 5
この作品を読んでいる人はこんな作品も読んでいます!
ユーザ登録のメリット
- 毎日¥0対象作品が毎日1話無料!
- お気に入り登録で最新話を見逃さない!
- しおり機能で小説の続きが読みやすい!
1~3分で完了!
無料でユーザ登録する
すでにユーザの方はログイン
閉じる