通常、Nginx をリバース プロキシ サーバーと呼びますが、リバース プロキシとフォワード プロキシとは何ですか?
我想大声告诉你2017-05-16 17:23:59
A は B と直接通信します。つまり、代理店は存在しません。
ただし、中間にはメッセンジャーCが存在し、AはCを通じてBに情報を送信し、CはBのフィードバックをAに中継します。
このプロセスでは、A はコミュニケーションの直接のターゲットが B であることを知っていますが、さまざまな理由により B と直接向き合うことができず、仲介者 C が必要になります。これがいわゆる「フォワード エージェント」です。実際には、これはめったにありません。英語の原文ではForward Proxyと呼ばれますが、一般的には「転送プロキシ」または「送信プロキシ」と訳した方が適切です。 、それがプロキシという言葉の本来の意味であるため、必要ありません。
もう 1 つの状況は、A は B の存在を知りません。A にとって、B が存在するかどうか、または B、D、E、F がいくつあるかどうかを知るには、C を見つけることだけを知っています。 Cさえあれば十分です。そしてCは状況に応じてフィードバックを受けてAに対応します。
これはリバースプロキシと呼ばれます。違いを理解するには、英語の「順方向」と「逆方向」の 2 つの対義語に焦点を当てないでください。ただし、「順方向」と「逆方向」は同じ意味ではありません。 . なので、専門書や資料に関してはやはり原文を読む必要があります。
─────
今、友人が私に質問しましたが、彼はまだ混乱していたため、私が例を示したところ、彼は理解しました。上記の私の回答が皆さんに理解していただけるかどうかわからないので、次の例も書きました:
www.google.com にアクセスしたいのですが、ブロックされていることは誰もが知っているため、直接アクセスできません。そこで、VPN サービスに接続し、ローカル HTTP アクセスのプロキシとして設定しました (たとえば、Mac では、[すべてのトラフィックを VPN 接続経由で送信する] にチェックを入れます)、その後 www.google.com にアクセスしましたが、リクエストはブロックされました。 VPN サービスは、www.google.com へのアクセスをプロキシし、結果を私に返します
。この例はプロキシの適用シナリオですが、プロキシがこれだけに使用できるという意味ではありません
最も重要な特徴は、www.google.com の存在を知っていることです。私がアクセスした URL は確かに www.google.com ですが、アクセス要求は VPN プロキシ経由で転送され、同じことが応答
この場合、プロキシは透過的であり、ユーザーはその存在を知らない可能性があります(通常は知っていますが、自分でプロキシを設定しない可能性があります)
www.mysite.com のポート 80 に Nginx サービスをデプロイしています。ユーザーがそれにアクセスすると、私の Web サイトには JSON データを取得するための Ajax リクエストがいくつかありますが、これらを提供する API サービスが表示されます。データが展開されている サーバー上のポート 8000 はファイアウォールによってブロックされており、ユーザーは直接アクセスできません。
そこで、すべてのアクセス要求を :80/api/ 経由で localhost:8000 にプロキシし、元の要求者 (つまり、オリジン ホスト) に応答を返すように Nginx を再構成しました。これはリバース プロキシです。これで、ユーザーは通常どおり www.mysite.com にアクセスできるようになりました。
上記と同様、リバースプロキシの応用シナリオですが、この方法でのみ使用できるというわけではありません
最も重要な特徴は、ユーザーが localhost:8000 サービスの存在をまったく知らず、たとえ知っていたとしてもアクセスできないことです。 VPN、これは 2 つの異なるものです。
ユーザーにとって、唯一の「会話」パーティーは www.mysite.com (ポート 80) であり、次に何が起こったかを知りませんし、知る必要もありません
大家讲道理2017-05-16 17:23:59
リバース プロキシとは、その背後にあるターゲットが固定されていることを意味します
ユーザーが nginx にアクセスすることは、プロキシの背後にある Web サービスにアクセスすることと同等です
フォワードプロキシとは、プロキシのターゲットが固定されていないことを意味します
ユーザーはプロキシサーバーを介して任意のWebサービスにアクセスできます
阿神2017-05-16 17:23:59
主な違いは、クライアントであるか、プロキシとして機能するサーバーであるかです。
クライアントがリクエストを送信するときにプロキシを使用する場合、それはフォワード プロキシです。
サーバーがクライアントのリクエストを受信すると、プロキシを使用して他のサーバーに転送します。これがリバース プロキシです。
PHP中文网2017-05-16 17:23:59
フォワード プロキシ: アクセスするには、プロキシ サーバーの IP またはドメイン名をアクティブに設定する必要があります。設定されたサーバーIPまたはドメイン名に基づいてアクセスコンテンツを取得し、返します。
リバース プロキシ: サーバーの実際の IP またはドメイン名に直接アクセスするための設定は必要ありませんが、サーバーはアクセスされたコンテンツに基づいて自動的にジャンプしてコンテンツを返します。最終的にどのマシンにアクセスするかはわかりません。
PHP中文网2017-05-16 17:23:59
ABC の例では、フォワード エージェントは次のように理解できます。C は B を見つけるために A のエージェントとして機能しますが、リバース エージェントの C は B のエージェントに近く、A にフィードバックを与えます。
ringa_lee2017-05-16 17:23:59
簡単に言えば、それはあなたが誰を代表するかによって決まります。クライアントのプロキシはフォワード プロキシ、サーバーのプロキシはリバース プロキシです
PHP中文网2017-05-16 17:23:59
コンピューターがサーバーにアクセスし、サーバーがコンピューターの実際の IP を認識していない場合、両者の間にフォワード プロキシが存在します。
コンピューターがサーバーにアクセスし、コンピューターがサーバーの実際の IP を知らない場合、2 つの間にリバース プロキシが存在します。
もちろん、多くのフォワード プロキシは、http ヘッドを介してコンピューターの実際の IP を渡すこともできます
大家讲道理2017-05-16 17:23:59
転送エージェント: KFC にハンバーガーと手羽先を食べに行くと、ハンバーガーと手羽先は各レベルの「代理店」サブセンターを通じて本部から入手され、配布されます。
リバースプロキシ: KFC 本部がハンバーガーや手羽先を提供するとき、まずさまざまな地域にサブセンターを割り当て、次に店舗に行き、最終的にそれらをあなたに届けますが、それはあなたにとって透過的であり、あなたがそうする必要はありません中国東部か北部かがわかります。支店センターが配達します。
给我你的怀抱2017-05-16 17:23:59
オンラインになると、プロキシ サーバーを構成する必要がある場合があります (ブロックされるなど)。このプロキシ サーバーは、サーバー システムを開発する場合、クライアント/ブラウザーから送信されるリクエスト プロキシを複数の実際のビジネスに分散します。バックグラウンドのサーバーでは、このプロキシはリバース プロキシです。
フォワード プロキシはクライアント側、リバース プロキシはサーバー側と考えることができます。