- 締切済み
異なるサーバー間の通信について
異なる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)だけでこのようなことが可能なのか? 教えていただけたらと思います。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- TagoSuck
- ベストアンサー率72% (16/22)
Aがリクエストを処理してBのCGIをLWP::Simpleのget()とかで呼び出し、Bはデータベース処理の結果をXMLで返す。 Aは、受け取ったXMLを解析してHTML表示してはどうでしょう。 自家製ウェブサービスみたいな感じですかね。
- zxcv0000
- ベストアンサー率56% (111/196)
なぜ閲覧者が B 上のCGIにアクセスする設計にしないか不明ですが、 A 上のCGIが、 B 上のCGIを起動するための HTTPクライアントになればできるんじゃ無いでしょうか? あるいは、DBD::Pg が 80ポートで PostgreSQL にアクセスする設定や、PostgreSQL が 80ポートでアクセスを受ける設定も可能なのかも知れませんが、その時はファイアウォールにはじかれない様にしないといけませんね。