投稿日:2002年03月16日 作成鷹の巣

No.1852 ApacheのVirtualHostについて。



ApacheのVirtualHostについて。

No.1852 投稿時間:2002年03月16日(Sat) 17:37 投稿者名:makoto URL:

以前に、ANHTTPDのバーチャルホスト設定について質問させていただいたmakotoです。最近OSをWin98からWin2Kに変えたので、
これを機会にApacheに挑戦してみたのですが、ANHTTPDと同じところで分からなくなってしまいました。Apacheは最新版です。

portの違うabc.com:80とxyz.net:4567を運用したいのですが、IP直打ちや別ドメインで見つけられたくないです。
つまり、abc.com:4567でアクセスしたときに、xyz.net:4567を見られたくないです。なので、白紙のindex.htmを見せるようにするために
ANHTTPDのときと同じ感覚で、以下のようにしてみました。

NameVirtualHost *

<VirtualHost *:80>
ServerAdmin test@test
DocumentRoot D:/home/test
ServerName example.com
</VirtualHost>

<VirtualHost *:4567>
ServerAdmin test@test
DocumentRoot D:/home/test
ServerName example.com
</VirtualHost>

<VirtualHost *:80>
ServerAdmin test@test
DocumentRoot D:/home/abc
ServerName abc.com
</VirtualHost>

<VirtualHost *:4567>
ServerAdmin test@test
DocumentRoot G:/home/xyz
ServerName xyz.net
</VirtualHost>

こうすると、port80では、IP直打ちやxyz.net(:80)の場合はexample.comにアクセスし、abc.comとした場合のみabc.comにアクセスできます。
でも、port4567のほうは全部example.comにアクセスしてしまいます。xyz.net:4567としてもexample.com:4567にアクセスします。
また、サーバを起動するときに、[warn]_default_virtualhost overlap on port 4567, the first has precedence. と表示されます。

原因がわかる方がいらっしゃいましたら、解決策を教えていただけないでしょうか?よろしくお願いします。


ApacheのVirtualHostセクションの外側で定義して下さい。

No.1859 投稿時間:2002年03月16日(Sat) 20:17 投稿者名:鷹の巣 URL:http://sakaguch.com/

> portの違うabc.com:80とxyz.net:4567を運用したいのですが、IP直打ちや別ドメインで見つけられたくないです。
> つまり、abc.com:4567でアクセスしたときに、xyz.net:4567を見られたくないです。なので、白紙のindex.htmを見せるようにするために


> また、サーバを起動するときに、[warn]_default_virtualhost overlap on port 4567, the first has precedence. と表示されます。


「Index Page for Apache」 http://japache.infoscience.co.jp/
から辿れば、「Apache Core Features」 http://japache.infoscience.co.jp/japanese_1_3/manual/mod/core.html#virtualhost
で設定を行って下さい。(_default_virtualhostの方に集約して下さい。)

---------------------------引用開始------------------------------
特別な名前である_default_は、このバーチャルホストが、明らかに他のバーチャルホストにリストされていないIPアドレスに一致する場合に指定されます。
なにかの _default_ バーチャルホストがない"main"のサーバコンフィグは、VirtualHostセクションの外側で全てのその定義から構成され、一致しないときに使われます。
---------------------------引用終了------------------------------


#バーチャルホスト機能設定を一旦、すべてコメントにして、通常、デフォルトのWeb頁(白紙のindex.htm)が表示されるようにして下さい。
#その後にバーチャルホストでアクセスさせたいWeb頁の条件設定を行って下さい。


80番ポート以外でバーチャルホストを複数立てる方法

No.1864 投稿時間:2002年03月16日(Sat) 23:25 投稿者名:makoto URL:

_default_でやってみてもうまくいきませんでした。。。
80番ポートでは、やっぱりうまくいくのですが、ほかのportではうまくいきません。
80番以外のポートでは、同一ポートに複数のバーチャルホストを立てることができないのですが、
これはどうすれば解決するのでしょうか?


私もLAN内でテストし、80番ポート以外は、駄目でした。

No.1879 投稿時間:2002年03月17日(Sun) 18:11 投稿者名:鷹の巣 URL:http://sakaguch.com/

> _default_でやってみてもうまくいきませんでした。。。
> 80番ポートでは、やっぱりうまくいくのですが、ほかのportではうまくいきません。
> 80番以外のポートでは、同一ポートに複数のバーチャルホストを立てることができないのですが、
> これはどうすれば解決するのでしょうか?


私もLAN内でhostsファイルに色々ホスト名を登録して、1時間程テストして見ました。
<VirtualHost _default_:80>
...
</VirtualHost>
の_default_は、IPアドレスだけですね。失礼しました。
<VirtualHost _default_:*>とするとバーチャルホスト自体が上手く動きませんね。
インターネット上でapacheが立てられない(ルータのポートを開ける設定を行うと、IPアドレスが変わってしまう)ので、
LAN内だけのテストでしたが、私もVirtualHostの条件に一致しない全てのアクセス条件を
<VirtualHost _default_:*>で設定したドキュメントルートのindexファイルに誘導出来ませんでした。
私がhttpd.confで設定したところは、「Listen 4567」を追加したことと、後は行末の<VirtualHost>関係を追加しただけですが。


追記。(Apacheの二重起動の失敗例)

No.1908 投稿時間:2002年03月18日(Mon) 19:02 投稿者名:鷹の巣 URL:http://sakaguch.com/

> _default_でやってみてもうまくいきませんでした。。。
> 80番ポートでは、やっぱりうまくいくのですが、ほかのportではうまくいきません。
> 80番以外のポートでは、同一ポートに複数のバーチャルホストを立てることができないのですが、
> これはどうすれば解決するのでしょうか?


ルータのポートフォワーディングで、80番と4567番ポートを別のサーバー機に割り当てれば確実に出来るのでしょうけど。
バーチャルホストのセットアップ例
http://japache.infoscience.co.jp/japache/docs/vhosts/examples.html#ip
を読むと出来そうな気がするのですが。


Apacheが下記の別々の設定ファイルで二重起動出来れば可能になるのですが、残念ながら、
Apache起動時に -f "conf\httpd1.conf" と -f "conf\httpd2.conf" を指定しての二重起動は、失敗しています。
下記の様な起動用ショートカットに-fのパラメータを追加して、別々の設定ファイルで
「Start」 :"C:\Program Files\APACHE~1\Apache\Apache.exe" -w -n -f "conf\httpd?.conf "Apache" -k start
「Stop」 :"C:\Program Files\APACHE~1\Apache\Apache.exe" -w -n -f "conf\httpd?.conf "Apache" -k stop
「Restart」:"C:\Program Files\APACHE~1\Apache\Apache.exe" -w -n -f "conf\httpd?.conf "Apache" -k restart
(?は、1または2)
として起動して、二重起動は、失敗しています。


Apacheを2箇所のディレクトリにインストールしても二重起動は、出来ないでしょうか?
(試していませんが、多分駄目だと思います。)


---------------------------------------------------------------
httpd1.confの設定例

Listen 80
Port 80
<VirtualHost _default_:80>
...アクセス拒否用webページの設定(VirtualHostの条件に一致しない全てのアクセス条件)
</VirtualHost>
<VirtualHost *:80>
...アクセス用webページの設定1
</VirtualHost>
---------------------------------------------------------------------
httpd2.confの設定例

Listen 4567
Port 4567
<VirtualHost _default_:4567>
...アクセス拒否用webページの設定(ポート80の拒否用に同じ)
</VirtualHost>
<VirtualHost _default_:4567>
...アクセス用webページの設定2
</VirtualHost>
---------------------------------------------------------------------


# 昔(2年前)に比べると、Apacheも設定し易くなりました。
# インストール直後から、windows 2000/XP は、サービス動作し、http://127.0.0.1/ でアクセスが可能です。
# ドキュメントルートにindex.htmlファイルを置くだけで、簡単にwebページが公開出来ますし、起動、停止、再起動も簡単に出来るようになりました。


お手数おかけしました。同時起動試してみます。

No.1914 投稿時間:2002年03月18日(Mon) 23:04 投稿者名:makoto URL:

ありがとうございました。やっぱりメインのとportが違ってると、複数のバーチャルポストは立てられないみたいですね。。。
Apacheの2重起動をこれから試してみます。FTPサーバやメールサーバを同時起動してることを考えれば、
Apache同時起動も、そんなに負荷はかかりそうにないですし・・・(できたらの話ですが)


Apacheの同時起動無理でした。。。

No.1915 投稿時間:2002年03月18日(Mon) 23:20 投稿者名:makoto URL:

別のディレクトリにインストールすること自体が無理でした。複数のポートを使わないような構成にして、Apacheを使用してみることにします。
ありがとうございました。


お役に立てなくて申し訳ありませんでした。

No.1919 投稿時間:2002年03月19日(Tue) 00:58 投稿者名:鷹の巣 URL:http://sakaguch.com/

> 別のディレクトリにインストールすること自体が無理でした。複数のポートを使わないような構成にして、Apacheを使用してみることにします。


お役に立てなくて申し訳ありませんでした。
私事で恐縮ですが、Apacheでは、ポートを複数使用するVirtual Hostを設定して稼動させたことがなかったので、今回ご一緒に勉強させて頂きました。
色々、実施結果をご報告して頂いてありがとうございました。今後ともご指導方、宜しくお願い致します。


別のWebサーバと併用してみてはどうでしょう

No.1925 投稿時間:2002年03月19日(Tue) 10:04 投稿者名:rh_eternal URL:

はじめまして、makotoさん。
タイトルの通りなのですが、
別のWebサーバ(例えばanHTTPD)を併用し、
Apacheは80番ポート、
anHTTPDは4567番ポートというふうに使い分けるのはどうでしょうか。
管理が面倒になりますが・・・。


その手がありましたね。やってみます

No.1927 投稿時間:2002年03月19日(Tue) 14:00 投稿者名:makoto URL:

> 別のWebサーバ(例えばanHTTPD)を併用し、
> Apacheは80番ポート、
> anHTTPDは4567番ポートというふうに使い分けるのはどうでしょうか。
> 管理が面倒になりますが・・・。

その手があったんですね。思いつきませんでした。。。
僕の場合、管理といってもログをチェックするぐらいなので、問題ないです。早速試してみます。

鷹の巣さん、rh_eternalさん、アドバイスありがとうございました。
まだApacheを始めたばかりなので、今回試行錯誤することでApacheの理解度がすごく上がりました。
また質問させていただくかもしれませんが、よろしくお願いします。
僕も、みなさんの質問に答えられるぐらいにがんばってスキルアップしていこうと思います。


バーチャルホストは経験無いのですが

No.1931 投稿時間:2002年03月19日(Tue) 18:29 投稿者名:rh_eternal URL:

rh_eternalです。
お役に立てたようでしたら光栄です。
自分もバーチャルホストを使用する計画を練っていますので、
私にとっても参考になります。ありがとうございます。
ただ、この場合は
abc.com:4567
xyz.net:80
をどのように遮断するかが肝ですよね。
1サーバよりは対策を取り易いのでしょうか・・・。


|目次|掲示板|過去ログ目次|▲頁先頭|