サーバーをリバースプロキシと
アプリケーションサーバに分けて
cgiの動的ページの生成などは
アプリケーションサーバにまかせると言う仕組みに
興味を持っているのですが
イマイチ仕組みが見えてきません。
あまりに初歩的な質問でしょうが
上記の様なサーバー構成の場合
CGIファイル自体はどちらのサーバーに置くのですか?
リバースプロキシに置いて
アプリケーションサーバーのCPUだけ借りるのですか?
アプリケーションサーバに置く場合
リバースプロキシに置いてあるHTMLでは
CGIの場所をどの様に指定するのでしょうか?
またCGIではHTMLの生成場所をどの様に指定
するのでしょうか?
分かる方がいらっしゃいましたら
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
ご質問の意図が理解できました。
説明不足ですみません。お知りになりたいのはmod_proxyとmod_rewriteの組み合わせによる動作のようですね。
mod_proxyは具体的に通信を各サーバーに振り分ける役割だと思ってください。
mod_rewriteはどのサーバーに具体的に振り分けるかを決定する役割を持っていると思ってください。(実は機能的には違うのですが,いただいたURLの説明を読むと,そのことで使用しているみたいなので・・・)
>>上記の様なサーバー構成の場合
>>CGIファイル自体はどちらのサーバーに置くのですか?
リバプロ側には極力負担をかけたくないので,このような構成の場合にはCGIなど重い処理が走るものはすべてアプリケーションサーバー側(気軽に台数を増減できる)におきます。
>>リバースプロキシに置いて
>>アプリケーションサーバーのCPUだけ借りるのですか?
そういえないこともありませんが,アプリケーションサーバー側でCGIを設置するのでそのCGIを動作させるPerlなどの言語もアプリケーションサーバー側で動作していますから,「CPUだけ借りる」という表現よりも「CGI部分の処理だけをアプリケーションサーバー側に行わせる」という表現のほうがより近いと思います。
>>アプリケーションサーバに置く場合
>>リバースプロキシに置いてあるHTMLでは
>>CGIの場所をどの様に指定するのでしょうか?
一台のサーバーにHTMLやCGIをおくのと同じ表現方法です。
>>またCGIではHTMLの生成場所をどの様に指定
>>するのでしょうか?
これも上記と同様,一台のサーバーにHTMLやCGIをおくのと同じ表現方法です。
わかりづらいので,上記2つのご質問を簡単に説明すると
www.testdomain.com
というドメインのドキュメントルートにindex.htmlがあるとします。
index.htmlには,ひとつの画像とひとつのCGIが指定されているとします。
この環境にはサーバーが2台あり,ひとつはmod_rewriteとmod_proxyを組み込んであるapacheが動作しておりこれを1号機とします。もうひとつはmod_perlが組み込んであるapacheが動作しているとし,これを2号機とします。
index.htmlとimgは前者,CGIは後者に保存されているとします。
クライアントが「http://www.testdomain.com/index.html」を呼び出すと,サーバーはとりあえずindex.htmlのテキスト文書をクライアントに返します。
受け取ったクライアントは,返却されたHTMLの中身を読み取り,とりあえず画像ファイルを読み出しに行きます。
index.htmlで画像ファイルを./img/test.pngなどと指定している場合には,リクエストは「http://www.testdomain.com/img/test.png」とリクエストされます。
このリクエストを受け取ったapacheはmod_rewriteに解析を依頼します。mod_rewriteの定義で/img/を含むURLがリクエストされた場合には,そのリクエストは1号機の方で処理するように指定がしてあると,1号機のimgフォルダにあるtest.pngを返却します。
また,クライアント側でユーザが,CGIを動作させるような操作をした場合リクエストは「http://www.testdomain.com/cgi-bin/test.cgi」などとなるわけですが,前者と同様mod_rewriteの定義で/cgi-bin/を含むURLがリクエストされた場合には,そのリクエストは今度は2号機の方で処理をするように指定がしてあると,そのリクエストは2号機のapacheに受け渡され,2号機のCGIコンテンツが処理を行い,リクエストを1号機のリバプロ経由でクライアントに返却します。
上記のように,クライアント側からは1台のサーバーで動作しているようにしか思えない,URLの仕方でも,実は2台のサーバーで処理を行うことが可能となります。
後は上記の応用だけなので,CGI専用やIMG専用,動画専用などのサーバーを立てておき,それぞれの処理を専用マシンに行わせるであるとか,が可能となります。
以上です。
お礼が遅くなって申し訳ありません。
非常に丁寧な解説を頂いて恐縮です。
複数台のサーバーで処理を分散する形がだいぶ見えてきた気がします。
休みに日に自宅サーバをいじって遊んでみようと思います。
ありがとうございました。
No.1
- 回答日時:
一般的なリバースプロキシーは本当にプロキシーをしてくれるだけなので,リバースプロキシー側にHTMLやCGIをおくことはありません。
上記の例で言うと,同じ動きをするアプリケーションサーバーを複数台立てて,外部からのアクセスを順次違うサーバーに行わせるというようなことを行いたい場合に,リバプロを使用します。
何かと勘違いされているのではないでしょうか?
ご回答ありがとうございます。
http://www.thinkit.co.jp/free/article/0610/1/1/
上記の記事を読んで興味を持ったのですが
この記事では、リバースプロキシーに
ウェブサーバも兼用させている事例の様です。
ご回答によるとCGIはアプリケーションサーバーに置くとの事ですが
その際のCGIからHTMLをはき出す際の場所の指定や
その逆にHTMLからCGIを呼び出す際の場所の指定は
具体的にどの様に行うのでしょうか?
引き続きご存知の方がいらっしゃいましたら、よろしくお願い致します
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ASP(IIS?)のエラーについて
-
Ajax React Jqueryの位置づけと...
-
EXCELファイルに誰がアクセスし...
-
KENT WEB(昨日の続きです)
-
《エクセルVBA》「他の人が該当...
-
ラジオボタンのグループ化
-
ApacheでのCGIについての質問
-
CGIでソースがそのままでてしま...
-
VBAでサーバーにアクセスするに...
-
FTPにて553エラー
-
perl 矢印演算子 -> の使い方
-
アクセス制限をかけたファイル...
-
tableのthに斜めの線をCSSで入...
-
ユーザの所属するグループを取...
-
JAVAで別サーバーのファイルの...
-
webページのリストボックスから...
-
ログアウト処理でWebブラウザを...
-
Perlの日記プログラムがIIS+Act...
-
ASPからJavaScriptへの受け渡し...
-
tplファイルのプレビューの方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASP(IIS?)のエラーについて
-
ExcelでNTPサーバーから時刻を...
-
サイトの一部を自動更新にする方法
-
cgi アクセス制限 エラー
-
Ajax React Jqueryの位置づけと...
-
close(STDOUT)するとCGIが終了...
-
アプリケーションサーバへのCGI...
-
サーバーとルーターでどこまで...
-
CGIから別サーバーのCGIの呼び出し
-
ファイルの破損について
-
こんなCGIあるとは思えませんが...
-
sendmailが使える無料レンタル...
-
ホームページビルダー11 サイ...
-
クライアントサイドとサーバー...
-
直リンク用バナーの作り方
-
AS/400 QUERYの集計結果について
-
EXCELファイルに誰がアクセスし...
-
KENT WEB(昨日の続きです)
-
《エクセルVBA》「他の人が該当...
-
FTPにて553エラー
おすすめ情報