3 つのサーバー ( A、B、およびC )があるとします。
- サーバーAはサーバーBにのみアクセスでき、AはCに直接アクセスできません。
- BはCにアクセスできます。
- A、Cは別のネットワークにあります。
BとCはどちらも http サーバーですが、PHP を実行できるのはCだけです。
AからCのMySQL サーバーから情報を取得するには、PHP を使用する必要があります。
PHP をBにインストールできません。
Cで実行され、結果をBに返し、Aに返すPHP ページを作成することは可能ですか?
プロキシとして機能するようにBを構成します。Apacheを実行している場合は、proxypassディレクティブを参照してください
Bをプロキシとして機能させる必要があります。Bに受信したリクエストをCに直接ルーティングするという考え方です。
概要...そして、CからAにある情報を取得したいとします。
(HTTP,PHP) A -----> B (HTTP,PHP)
(HTTP,PHP) A --|| C (HTTP,MySQL)
(HTTP,PHP) B -----> C (HTTP, MySQL)
(HTTP,PHP) A -----> B (HTTP->ProxyPass,PHP)
(HTTP,PHP) A --|| C (HTTP,MySQL)
(HTTP->ProxyPass,PHP) B -----> C (HTTP, MySQL)
A->B(Proxied to)->C
http://httpd.apache.org/docs/2.1/mod/mod_proxy.html#proxypass
ローカルサーバーのアドレスがhttp://example.com/であるとします。それから
ProxyPass /mirror/foo/ http://backend.example.com/
http://example.com/mirror/foo/barのローカルリクエストは、内部でhttp://backend.example.com/barへのプロキシリクエストに変換されます。
「AからCのmysqlサーバーから」の意味がわかりませんでした。AはHTTPサーバーではないため、MySQLデータをAからCに転送することを意味していると思います(BとCのみが言及されました)。B の 3310 などのランダムなポートを A のポート 3306 にルーティングできます。このようにして、A の MySQL サーバーに C から直接アクセスできます (ただし、A でリモート アクセスを有効にする必要があります)。3 つのサーバーで管理者権限を持っていると仮定します。