• ベストアンサー

2台のサーバで違うサービス

現在,ルータに2台のサーバが接続されています.サーバAはウェブサーバとして正常に動作しています. 今回,サーバBを増設し,違うサービスを行いたいのですが,どのような設定を行うとよろしいでしょうか. ルータ |-サーバA(192.168.0.2) http://example.com/ |-サーバB(192.168.0.4) http://a.example.com/ httpd.confのvirtual hostに設定を行うと思うのですが,設定方法又は,同じような条件の設定方法が示されたページを教えてください. 一応,サーバAに設定した内容は以下の通りです. この設定では上手く接続されませんでした.具体的には,virtual hostに設定されていない*.example.comはexample.comにリダイレクトされるように設定していますので,example.comに飛ばされてしまいます. <VirtualHost 192.168.0.4> ServerAdmin webmaster@example.com DocumentRoot /var/www ServerName a.example.com </VirtualHost> どうか,よろしくお願いいたします.

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

#1です。 補足拝見しました。 まずはvirtualhostの設定で上手くいってよかったですね^^ >実験的に,サーバAに次のようなvirtualhostを設定すると,上手くいきました. >しかし,192.168.0.4では,内部からしかアクセスできないと思います. ということですが、実際に設定されているアドレスもローカルアドレスで、ルータのバーチャルサーバ(ルータによってはIPマスカレードとかポートマッピングなど)で外部へ公開されているのでしょうか。 その場合は192.168.0.4もあわせて外部へ公開すれば、外からもアクセスできると思います。(もちろん外部からの1次アクセスは192.168.0.2へ着ますが、192.168.0.4も公開しておかないとアクセスできなくなってしまいます) 逆にグローバルアドレスを取得しているのであれば、内部にDNSを立てておいたほうが何かと融通が利きます。今回のサービスの振り分けでも有効ですし、サーバを乗せ替えたりするような場合でもキャッシュタイムを短くしておいてスムーズに移行することが出来ます。 参考にしてください。

hyd155
質問者

お礼

少し方向が変わってしまったにも関わらず,丁寧に解説していただき,ありがとうございました. 今度は,DNSサーバを立てて試してみることに致しました. 本当にありがとうございました.

hyd155
質問者

補足

何度もありがとうございます. 現在,ルータのポートマッピングでサーバAを公開しています. つまり,example.com:80への接続はサーバAに送られることになります.ここで,前述のようにa.example.com:80への接続を192.168.0.4(サーバB)に送るための方法として, > 192.168.0.4もあわせて外部へ公開すれば とは,違うポート番号で・・ということでよろしかったでしょうか. 例えば,サーバBは8080番で公開とか・・? ルータへの設定は8080番をサーバBにポートマッピング,サーバBでのhttpd.confの設定ではServerName/Listenともに8080番に設定,サーバAではvirtualhostに次のような設定をしてみると良いのでしょうか. <virtualhost 192.168.0.2> ServerName a.example.com Redirect / http://example.com:8080/ </VirtualHost> どうも,的外れなことを言っているような気がするのですが・・ 申し訳ありませんが,もう少し詳しく教えていただいてもよろしかったでしょうか.

その他の回答 (2)

  • gsx_rider
  • ベストアンサー率40% (53/130)
回答No.3

<virtualhost 192.168.0.2> ServerName a.example.com Redirect / http://example.com:8080/ </VirtualHost> 以上の設定ですとvirtualhostの設定をせずとも ルーターの192.168.0.4の8080番を公開する事で http://example.com:8080 へのアクセスは可能だと思いますので 本末転倒のように思います virtualhost は本来一つのサーバーの中に複数のドメインを 与えるものですのでこの場合 やはり自ネットワーク内にDNSを設置するか ルーターでは無く ゲートウェイとなるマシンを設置して 細かく設定する方法が適切です 

hyd155
質問者

お礼

ご回答ありがとうございます. > 与えるものですのでこの場合 やはり自ネットワーク内にDNSを設置するか ルーターでは無く ゲートウェイとなるマシンを設置して細かく設定する方法が適切です やはりそうですか・・ まだまだ技術が足りないのだという理由で,DNSからは逃げておりましたが,本格的に取り組まなくてはならないようですね・・ 頑張って取り組んでみることにします. 本当にありがとうございました.

回答No.1

>httpd.confのvirtual hostに設定を行うと思うのですが,設定方法又は,同じような条件の設定方法が示されたページを教えてください. サービスの割り当てはhttpd.confではなく、DNSのゾーンファイルで行います。質問者様のDNSはサーバAで動いているのでしょうか。 それとも外部のDNSで動いているのでしょうか。 具体的にはexample.comのゾーンファイルの中で example.com. IN A 192.168.0.2 a.example.com. IN A 192.168.0.4 と指定してあげれば、振り分けることが出来ます。 質問者様がやろうとしていたVirtualHostの設定は、サーバAの中に 192.168.0.4を内包しているばあいに設定する方法です。 参考にしてください。

hyd155
質問者

補足

ご回答ありがとうございます. DNSは内部には立てていません. やっぱり,立てたほうが簡単に設定できるのでしょうか・・ 本日,色々調べていたところ,virtualhostのredirectを使用することで,私の望んでいることが実現できそうなのです. 具体的には,(質問として書いた内容とは若干変わっているかもしれませんが) a.example.comとしてアクセスしてきたものをサーバBにリダイレクトしたいと思います. 実験的に,サーバAに次のようなvirtualhostを設定すると,上手くいきました. <virtualhost 192.168.0.2>    ServerName a.example.com    Redirect / http://192.168.0.4/ </VirtualHost> しかし,192.168.0.4では,内部からしかアクセスできないと思います. これを外部からアクセスできる形で設定したのですが,このようなことは可能でしょうか.

関連するQ&A