• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2台目のWEBサーバの設定方法)

2台目のWEBサーバの設定方法

このQ&Aのポイント
  • 2台目のPCをWEBサーバとして使用する方法をご説明します。
  • PCのOSはLinuxのFedora10を使用しており、固定IPアドレスは123.45.67.89です。
  • 1台目のPCのローカルアドレスは192.168.100.2でポートは80、ドメイン名はexample1.comです。2台目のPCのローカルアドレスは192.168.100.3でポートは8000、ドメイン名はexample2.comです。example2.comに接続するためには、ポート番号を指定する必要があります。

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

  • ベストアンサー
  • wingstar
  • ベストアンサー率37% (102/275)
回答No.7

192.168.100.2のhttpd.confを <VirtualHost *:80> ServerName example1.con DocumentRoot /www/example1 </VirtualHost> <VirtualHost *:80> ServerName example2.con ProxyPass / http://192.168.100.3:8000 ProxyPassReverse / http://192.100.1.3:8000 </VirtualHost> にしたらどうなりますか? あと、どうしたらいいのかわからなくなったら、とりあえずログを見るようにして、その意味を知る癖を付けて下さい。

wataj
質問者

お礼

ご回答ありがとうございます。 > にしたらどうなりますか? 同様のエラーになります。 > とりあえずログを見るよう ~ 約30分 ~ できました! エラーのキーワードを検索にかけて、原因を突き止めました。 アドバイスどうも有難うございました。 問題が解決して、とてもスッキリした気持ちです。 お世話になりました。

その他の回答 (6)

  • wingstar
  • ベストアンサー率37% (102/275)
回答No.6

「リバースプロキシ apache」などと検索してみて下さい。 例えば http://webos-goodies.jp/archives/51261261.html とか。 ご自身が提示した設定方法と比べてどうですか?

wataj
質問者

お礼

こんばんは。お世話になります。 192.168.100.2(ポート80)のWEBサーバのhttpd.confには以下のように設定しています。 <VirtualHost *:80> ServerName example2.con ProxyPass / http://192.168.100.3 ProxyPassReverse / http://192.100.1.3 </VirtualHost> 結果は、以下の通りです。 Forbidden You don't have permission to access / on this server. Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request. Apache/2.2.10 (Fedora) Server at example2.con Port 80 ここで、ProxyPassやProxyPassReverse内の /を適当に、/directory1のように変更したり、 http://192.168.100.3を、http://google.comのように変更したりしてみましたが、 http://192.168.100.2 (example1.con)のDocumentRootで指定されているディレクトリ内のファイル(index.html)が表示されるだけでした。 ProxyPassやProxyPassReverseの行をどのように設定すべきか、 また、他の部分で気を付けるべき箇所など、ご指南頂けたら幸いです。

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

example1.conやexample2.conでアクセスしてくるのは外部から123.45.67.89を叩いてくるのではないのですか? hostsで解決できるのはあくまでもルータの内側での話です ルータはHTTPのリクエストヘッダまでは解釈できないので、example1.conでアクセスされたのか、example2.conでアクセスされたのかは判別できません なので単純に、 123.45.67.89:80→192.168.100.2:80 123.45.67.89:8000→192.168.100.3:8000 と振り分けているだけにすぎません どちらも80/TCPでアクセスさせたければ、 (1)グローバルIPアドレスをもう1つもらい、 123.45.67.89:80→192.168.100.2:80 123.45.67.90:80→192.168.100.3:80 のように振り分ける (2)一旦リバースプロキシで受け取り、リクエストヘッダを見て処理を振り分ける のどちらかくらいしかないのでは? No.1のかたが質問している通り、普通のルータだけでは解決できません

wataj
質問者

お礼

ご回答ありがとうございました。 シンプルな説明でとても分かりやすかったです。勉強になりました。

  • wingstar
  • ベストアンサー率37% (102/275)
回答No.4

> http://192.168.100.3 当然です。 ポートは8000ですよね。 なので、 http://192.168.100.3:8000 にしないと出ないと思います。 質問の中で、 > (example1.con, example2.con)をバーチャルホストとして設定できません。 とありましたので、私はあえて書きませんでしたが、No.3の回答のとおり、普通はVirtualhost設定してリバースプロキシをするのが普通ではないでしょうか。

wataj
質問者

お礼

こんばんは。たびたびすみません。 http://192.168.100.3 は設定が不十分で表示できなかったようです。申し訳ありません。 ご指摘のように、現在のところ、 http://123.45.67.89:8000 のように、末尾にポート番号を入れないと、外部からのアクセスは不可能です。 No.3の方へのお礼に書きましたが、二つのドメインをVirtualhostを使って一つのWEBサーバだけで運営することを避けたいと考えているので、一つの固定IPアドレスを使って別々のWEBサーバが運営できれば、どのような方法でもよいのです。 > Virtualhost設定してリバースプロキシをする 現在、参照しているページは以下の通りです。 http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html#forwardreverse (フォワードプロキシ) ProxyRequests On ProxyVia On <Proxy *> Order deny,allow Deny from all Allow from example2.con </Proxy> (リバースプロキシ) ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://example2.con:8000 ProxyPassReverse / http://example2.con:8000 httpd.confファイルは、192.168.100.2(ポート80)と192.168.100.3(ポート8000)のサーバの二つにあると思いますが、 192.168.100.2(ポート80)のサーバを「フォワードプロキシ」として、 192.168.100.3(ポート8000)のサーバを「リバースプロキシ」として設定しています。 これから、VirtualHostを設定しようと思っているのですが、 192.168.100.2(ポート80)のWEBサーバのhttpd.confには <VirtualHost *:80> DocumentRoot /www/example1 ServerName example1.con </VirtualHost> 192.168.100.3(ポート8000)のWEBサーバのhttpd.confには <VirtualHost *:8000> DocumentRoot /www/example2 ServerName example2.con </VirtualHost> のように書いています。 とても長くなって恐縮ですが、これで大丈夫でしょうか? 概念がいまいちつかめていないので、自信がありません。

回答No.3

example1.conで一旦受けて、 バーチャルホストの設定で、 example2.conにmod_proxyで飛ばしちゃ駄目?

wataj
質問者

お礼

ご回答ありがとうございます。 どのような形であれ、一つの固定IP、二つのWEBサーバにそれぞれ別のドメインで運営できれば大丈夫です。 誤解があるようで申し訳ありませんが、バーチャルホストを使いたくない、というのは、 一つのWEBサーバに二つのドメインをバーチャルホストで設定する、という方法が、システム上、取れないということです。 ですから、別々のWEBサーバ上であれば、バーチャルホストを使用しても全く構いません。表現が悪くて誤解を招いてしまい、申し訳ありません。 ところで、mod_proxyですが、恥ずかしながら、使い方はあまりよく分かりません。 http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html#forwardreverse のページを参考にやっていますが、今のところ、うまく行っていません。

  • 8ive22ty
  • ベストアンサー率52% (770/1479)
回答No.2

> 想像するに、example2.conのアドレスは・・・ローカルでどこに行けばよいか分からず・・・。 hostsファイルに設定しておけばいいのでは。 ---質問からは外れますが、 Webサーバーをそのように分けていると、運用側も使用者側も使いにくい、ということはありませんか。

wataj
質問者

お礼

おはようございます。ご回答ありがとうございます。 > hostsファイルに設定しておけばいいのでは。 どちらのサーバのhostsファイルにどのように設定すればよいのでしょうか? ちなみに、現在の設定は以下の通りです。(この設定はうまく行っていません。) (1台目のサーバのhostsファイル) 192.168.100.3 example2.con (2台目のサーバのhostsファイル) 192.168.100.3 example2.con

wataj
質問者

補足

> Webサーバーをそのように分けていると、運用側も使用者側も使いにくい、ということはありませんか。 どうでしょうか。ないと思いますが。 運用側は私ですが、サーバのセキュリティの構造上、両サイトを別々のPC上に配置しなければならない状況です。 別々のPCですが、現在のところ、そのような不便さはさほど感じておりません。 使用者側は、同じサーバか別のサーバかは分からないと思います。

  • wingstar
  • ベストアンサー率37% (102/275)
回答No.1

> example2.conのアドレスは123.45.67.89と解決されてはいるようですが、ローカルでどこに行けばよいか分からず、1台目のPC内のどかかだと判断されているみたいです。 いいえ、ローカルで分からなくなっているわけではありません。 123.45.67.89のポート80がexample1.conに振られているからです。 example1.conのサーバの設定が変えられないなら、諦めるしかないです。 ちなみに、ポートフォワードしているのがルータですが、めっちゃ高級品ですか? それとも、フレッツ光で使用している程度のレベルのものですか?

wataj
質問者

お礼

ご回答ありがとうございます。 > example1.conのサーバの設定 いずれのサーバも私が管理しているので、設定の変更は可能です。 どのような設定にすればよいのでしょうか? > ちなみに、ポートフォワードしているのがルータですが、めっちゃ高級品ですか? ルータはWeb Casterという普通のレベル(?)のものです。 一応、ポートを含めたアドレスにするとホームページを表示してくれるので、 ルータの設定はうまく行っていると思うのですが…。

wataj
質問者

補足

少し気になることがあります。 ping 192.168.100.3 と打ってみると、100%レシーブされているようですが、 アドレスバーに http://192.168.100.3 と打ってみても、ページが表示できない、になってしまいます。

関連するQ&A