ウェブ上のローカルサーバーからHTTPトラフィックをリダイレクトする

ウェブ上のローカルサーバーからHTTPトラフィックをリダイレクトする

Apache/PHP サーバーを実行している Web サーバー (C1 と呼ぶことにします) があり、ポート転送されているため、どこからでもアクセスできます。ただし、Web サーバー LAN 内には Apache サーバーもインストールされている別のコンピューター (C2 と呼ぶことにします) があります。ポート転送を変更することも、Apache サーバーを変更する (つまり、カスタム モジュールをインストールする) こともできません。

C1 のディレクトリ内で C2 にアクセスする方法はありますか? (たとえば、www.website.org/random_dir にアクセスすると、C2 Apache サーバーのルートを参照できます。)

設定やその他の変更はできるだけ少なくするようにしています (例: モジュールの有効化など)

解決策はあるでしょうか?

答え1

C1 にスクリプトを配置して、リクエストを C2 に転送し、その応答を表示することができます。これは、Web プロキシを使用して実現できます。

インストールしてみてくださいプロキシまたはPHPプロキシ最初のステップとして、どれかがあなたのニーズに合うかどうかを確認してください。

プロキシを使用する場合は、C2 をその内部 IP (C1 から見える) で呼び出すことを忘れないでください。

答え2

C1 のフォルダーに、curl を使用して C2 から情報を取得するスクリプトを配置できます。www.website.org/random_dir にアクセスしたときに、index.php という名前を付けると、目的の動作が得られます。

ただし、他のファイルやフォルダにアクセスするには、次のように変数として渡す必要があります: www.website.org/random_dir?folder=another_folder/subfolder&file=my_file

そのソリューションはあなたのニーズに合うでしょうか?

答え3

リバース プロキシとは、実行しようとしていることの名称です。Apache はこれをサポートしています。

リバース プロキシとは、Web サーバーが HTTP 要求または URL を 2 番目の Web サーバーに転送し (途中で変更される可能性もあります)、その 2 番目の Web サーバーの応答を収集し、結果を配信する (戻りの途中で結果が変更される可能性もあります) ことです。

これは良い出発点です。時間があれば、いくつかの例を加えてこの回答を更新します。

これについて警告しておきます。リバース プロキシは、静的コンテンツや、動的コンテンツまたは JavaScript 生成コンテンツのリンクにページの URL が「ハードコード」されていないコンテンツに対しては、非常にうまく機能します。Web アプリケーション、または独自の組み込み Web サーバーを備えたアプリケーション (Subsonic または uTorrent のリモート アクセスなど) がある場合、Web アプリケーションが生成するリンクが、リバース プロキシ先とは異なる場所を指している状況になることがあります。このような場合に、書き換えモジュールが役立ち、面倒なことになる可能性があります。すべての Web アプリケーションを正常にリバース プロキシできるわけではありません。

関連情報