• 締切済み

異なるサーバー間の通信について

異なる2つのサーバーがあり(A,Bとする) Aはファイヤーウォールの外側に、Bは内側にいます。 ファイヤーウォールはポート80のみが開いて、サーバーBは Aからのみ繋がるように設定されています。 Aサーバはユーザーからのデータ入力を受け付け、Bサーバーにある プログラムにデータを渡し、データベースサーバーからデータを取得し 結果を返すプログラムを書いているのですが、良い方法があればおしえてください。 サーバー環境:A:CentOS+Perl5.8.0 サーバー環境:B:CentOS+Perl5.8.0+DBI:pg+PostgreSQL8.1 となっています。 AからBに対しては、どのように値を渡せばいいのか? Bにあるスクリプトはどうやって結果を返せばいいのか? そもそもCGI(Perl)だけでこのようなことが可能なのか? 教えていただけたらと思います。 よろしくお願いいたします。

みんなの回答

  • TagoSuck
  • ベストアンサー率72% (16/22)
回答No.2

Aがリクエストを処理してBのCGIをLWP::Simpleのget()とかで呼び出し、Bはデータベース処理の結果をXMLで返す。 Aは、受け取ったXMLを解析してHTML表示してはどうでしょう。 自家製ウェブサービスみたいな感じですかね。

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.1

なぜ閲覧者が B 上のCGIにアクセスする設計にしないか不明ですが、 A 上のCGIが、 B 上のCGIを起動するための HTTPクライアントになればできるんじゃ無いでしょうか? あるいは、DBD::Pg が 80ポートで PostgreSQL にアクセスする設定や、PostgreSQL が 80ポートでアクセスを受ける設定も可能なのかも知れませんが、その時はファイアウォールにはじかれない様にしないといけませんね。

関連するQ&A