• 締切済み

Virtualhost:名前ベースorIPペース?

某レンタルサーバでVPSを使っています。 CentOS6.2(x86_64)、Apache/2.2.15 です。 で、1つの固定IPアドレスに対して、 3つのFQDNをvirtualhostで設定しようとしています。 (そのうち1つは、SSLもあり) で。。。 httpd.conf ===================================== NameVirtualHost *:80 <VirtualHost *:80> ===================================== ssl.conf ==================================== NameVirtualHost *:443 <VirtualHost *:443> ==================================== と、設定するのと、 httpd.conf ===================================== NameVirtualHost xx.xx.xxx.xxx:80 <VirtualHost xx.xx.xxx.xxx:80> ===================================== ssl.conf ==================================== NameVirtualHost xx.xx.xxx.xxx:443 <VirtualHost xx.xx.xxx.xxx:443> ==================================== と設定するのでは、どちらがのぞましいのでしょうか? どちらでも動くのですが・・・。 また、どういう仕組みの違いになっているのでしょうか? 下記2ページを読むと、自分のケースではどっちでも問題ないので、 どっちでもかまわないのでしょうか? //----------------------------------------------------------- 名前ベースのバーチャルホスト http://httpd.apache.org/docs/2.0/ja/vhosts/name-based.html IPベースのバーチャルホストWWWサーバの構築 http://www.aconus.com/~oyaji/www/apache_linux_virtual.htm よろしくお願いします。

みんなの回答

  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.2

SSLが1つなら、どちらでもいいのではないかと思います あえて(グローバル?)IPアドレスを無駄に使うことはないので、名前ベースのバーチャルホストを使えばいいのではないでしょうか? ただし、SSLを2つ使おうとすると、IPアドレスベースのバーチャルホストが必須になります 理由は↓を読んでみて下さい http://tomo.ac/goodstream/server/apache/tips/multissl.htm (http://www.aconus.com/~oyaji/www/apache_linux_virtual.htm にも書かれている通りです)

  • EF_510
  • ベストアンサー率50% (306/604)
回答No.1

IPアドレスを複数持たないのであれば「IPベース」にはなり得ないので「名前ベース」で正しく動く設定にしてください。 設定はどちらでも構いません。ただし、複数のIPアドレスがないからどちらでも良い、と言う消極的な理由です。IPアドレスを書き間違えると動作しない(応答しない)ので必要が無いのであれば書かない方が良いでしょう。

関連するQ&A

  • vhost.confについて

    参考URL「http://opentechpress.jp/developer/article.pl?sid=07/08/27/0148216」を元に、バーチャルホストを設定したくて やってみたのですが、Red Hatに元々入っているパッケージ(httpd)のhttpd.confの中をみたところInclude /etc/apache2/vhosts.d/*.confっていうInclude文がありませんでした。 自分で「Include /etc/httpd/vhost.conf」を追記し、 vhost.confをviエディタで作成しました。 NameVirtualHost *:80 <VirtualHost *:80> ServerName XXXXXXXXXXXXXXXXXXXXXXXX DocumentRoot XXXXXXXXXXXXXXXXXXXXXX ServerName xxxxxxxxxxxxxxxxxxxxxxxx </VirtualHost> ここで質問ですが、vhost.confにServerNameで設定した ドメイン名以外でもクライアントから接続できてしまいます。 理由は、クライアント側のhostsファイルに 「XXX.XXX.XXX.XXX vhost.confに設定したドメイン名 設定していないドメイン名」って設定しているからだとは思います。 ただこれだと「名前ベースのバーチャルホスト」の設定とは?? って疑問に思ってしまうのですが.. 用は、名前ベースのバーチャルホストでvhost.confに登録していないドメインから接続できないようにしたいです。 私の理解がズレてそうなので、詳しい方がいましたら教えてください。

  • Linux+Apache2+openSSLでVirtualHostは不可能?

    こんにちは。 RedHat Linux9 で、Apache2.0 + openSSLをインストールしたWebサーバーをたてています。 このサーバーでは「domain-A.com(仮)」 を動かしたいのですが、将来的に他のドメインも入れたいため、名前ベースのVirtualHostで構成したいと考えています。ところが、Apacheのマニュアルには「名前ベースのバーチャルホストは SSL プロトコルの特徴により、 SSL セキュアサーバには使えません。」と書かれています。 とりあえず、httpd.confにて、Domain-X.com(非SSL)とDomain-A.com(SSL)をバーチャルホストとして設定しました。 ssl.confにはDocumentRootとしてDomain-A.comのルートを指定しました。 すると、Domain-A.comをSSLで確認できたのですが、Domain-X.comにhttpsでアクセスするとDomain-Aのファイルが表示されてしまったのです。 ひとつのサーバーでSSLを使用するドメインを複数動かすことはできないのでしょうか? また、それができないなら、SSLを使用しないドメインにhttpsでアクセスした時に、SSLを使用するドメインのファイルが出ないようにする方法はないのでしょうか?

  • apacheのバーチャルホストの設定方法

    MacOSX Snow Leopardを使っています。 apacheは2.2.11です。 httpd.confで/http/Virtual.confを読み出して設定しています。 Virtual.conf ------- # #VirtualHost.conf # NameVirtualHost *:80 <VirtualHost *:80> ServerName www.xxxxx.com DocumentRoot /http/www.xxxxx.com </VirtualHost> ------- ※www.xxxxx.comは、正しく設定されています。 の設定をし、httpdを再起動したところ、IPアドレスでアクセスしても、ドメインでアクセスしても、httpコード403になってしまいます。 *httpdで起動時、エラーはでません。 *httpd -tはSyntaxOK *httpd -sは   VirtualHost configuration:   wildcard NameVirtualHosts and _default_ servers:   *:80 is a NameVirtualHost    default server www.xxxxx.com (/http/Virtual.conf:11)    port 80 namevhost www.xxxxx.com (/http/Virtual.conf:11)   Syntax OK です。 virtual.confをすべてコメントアウトしたところしっかりアクセスできました。 よろしくお願いします。

  • バーチャルホストでページがだぶってしまう

    バーチャルホストで http.confに設定をしてやったんですが ちょっと最初からできなさそうなので質問します aa.xxx.xx <ーーこちらはバーチャルではなくデフォルトの場所 bb.xxx.xx <ーーこちらがバーチャルだとします をバーチャルホストに書いて バーチャルホストのほうのDefaultRootを/var/hpにし デフォルトはデフォルトなので/var/www デフォルトのほうはバーチャルなど書いていません 問題はバーチャルホストを有効にして デフォルトのaa.xxx.xxxにアクセスすると バーチャルホストのDefaultRootが読み込まれてしまいます たぶん何となく問題がわかっているんですが サーバ機のIPを2個に増やしたりできないのでしょうか? IPが同一だからだぶると思うんですがたぶん ドメインがaa.xxx.xxx bb.xxx.xxでも同じサーバ機のIPが同じなので おかしくなってしまいます サーバ機に複数のIPアドレスを割り当てる事はできるのでしょうか? もし複数のIPアドレスを割り当てるなら 192.168.1.10の送信はデフォルト 192.168.1.11はバーチャルホストで NameVirtualHost 192.168.1.11とやればうまくいきそうなんですが 詳しい方教えて下さいお願いします OSはLinuxです apache1.3.34です

  • Debianの Apache2 VirtualHostの設定方法 RedHat系と違う?

    DebianのApache2を使い、バーチャルホストの設定を行いたいのですが、何か良い見本があれば教えていただけますか? RedHat系では httpd.confにすべて記述していたのでうすが、debianは設定ファイルが色々と分かれているようです。/etc/apache2/site-available/defaltに<VirtualHost>の設定を行うのですが、RedHat系の物をそのまま書き写して、 /etc/init.d/apache startとしても、起動しません。 デビアンのバーチャルホストの設定で参考になるものがございましたら教えてください。

  • apache VirtualHostが実行されない

    Apache設定初心者です。 httpd.conf で <VirtualHost> 内の DocumentRoot が表示されなくて困っています。 https://111.112.113.114 を実行すると DocumentRoot が /home/httpd/hoge/err/httpdocs となってしまいます(VirtualHost内の DocumentRoot が実行されない) よろしくお願いします。 【記述内容】 NameVirtualHost 111.112.113.114:80 NameVirtualHost 111.112.113.114:443 DocumentRoot /home/httpd/hoge/err/httpdocs <IfModule mod_ssl.c> <VirtualHost 111.112.113.114:443> ServerName hoge.co.jp:443 ServerAlias www.hoge.co.jp UseCanonicalName Off SuexecUserGroup use01grp01 DocumentRoot /home/httpd/hoge/httpdocs ErrorLog /usr/hoge/logs/error ScriptAlias /hoge-bin/ /usr/hoge-bin/ Alias /hoge1 /usr/hoge1/ Alias /hoge2 /use/hoge2 SSLEngine on SSLVerifyClient none SSLCertificateFile /usr/hoge/ctr/hoge.ctr </VirtualHost> </IfModule>

  • バーチャルホスト設定

    何度も投稿して申し訳ありません(汗) ここしか聞くところがなくてorz バーチャルホストの設定ですが Apacheが正常にインストールをしていていると想定して vi /etc/httpd/conf/httpd.conf の下のところにあるバーチャルホストの設定のコメントを外すと 403となってApacheの画面が見れていた localhostも見えなくなってしまします。 何か間違いがあるのでしょうか?ちなみに外したのは #NameVirtualHost *:80 ↓ NameVirtualHost *:80 #<VirtualHost *:80> # ServerAdmin webmaster@”ドメイン名” # DocumentRoot /home/ftpmaster/localhost/”ドメイン名” # ServerName ”ドメイン名” # ErrorLog logs/error_log #</VirtualHost> ↓ <VirtualHost *:80> ServerAdmin webmaster@”ドメイン名” DocumentRoot /home/ftpmaster/localhost/”ドメイン名” ServerName ”ドメイン名” ErrorLog logs/error_log </VirtualHost> です。 他に設定などがあるようでしたらご指摘していただけると嬉しいです。 使用OS→CentOS5i386

  • apacheのNameVirtualHostについての質問です。

    apacheのNameVirtualHostについての質問です。 サブドメインで別のサイトを運営したいのですが、 設定ファイルにて以下のように設定し、(ドメイン名は架空のものです) NameVirtualHost *:80 <VirtualHost *:80> ServerName site1.mydomain.com DocumentRoot /var/www/html </VirtualHost> <VirtualHost *:80> ServerName site2.mydomain.com DocumentRoot /var/www/html2 </VirtualHost> コマンドでの確認でも正常に設定できているようなのですが # httpd -S VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server site1.mydomain.com (/etc/httpd/conf.virtual/mydomain.conf:7) port 80 namevhost site1.mydomain.com (/etc/httpd/conf.virtual/mydomain.conf:7) port 80 namevhost site2.mydomain.com (/etc/httpd/conf.virtual/mydomain.conf:18) Syntax OK http://site2.mydomain.comでアクセスしてもsite1.mydomain.comのDocumentRootの/var/www/htmlの方が表示されてしまいます。 また、逆に設定ファイルにてsite2.mydomain.comを先に書くとdefault serverがsite2.mydomain.comになってhttp://site1.mydomain.comでアクセスしてもsite2.mydomain.comの内容が表示されてしまいます。 nslookupでは #nslookup site1.mydomain.com Name: site1.mydomain.com Address: xxx.xxx.xxx.xxx #nslookup site2.mydomain.com Name: site2.mydomain.com Address: xxx.xxx.xxx.xxx xxxとしていますが、どちらも正しいアドレスが引けているのでDNSの問題ではなさそうなのですが。。。 OSはCentOS 5.4、apacheのバージョンは2.3.3です。 どうかよろしくお願いします。

  • Apache virtualhostで存在しないホストについて

    Apache virtualhostで存在しないホストについて教えてください。 virtualhostで存在しないホストにアクセスがあった場合にステータス404とカスタムエラーページを返したいと思います。 DNSは*でやってるので、存在しないホストでのアクセスも可能ですが、その際に404エラーを返したいと思います。 httpd.confの設定方法を教えてください。 存在しない場合には先頭のvirtualhostの設定を返すことは理解していますが、その場合にエラーとしたいのですが、方法がわかりません。

  • Apacheの名前ベースのバーチャルホストについて

    Apacheのドキュメントを読むと「名前ベースのバーチャルホストでは、SSLプロトコルの特徴により、SSLサーバには使えない」とありますが、これは何故でしょうか? 名前ベースだと1つのIPアドレスに複数のホスト名を割り振るために、証明書的にまずいと言うことでしょうか?