1 はじめに
最近、仕事でリバース プロキシを使用しましたが、ネットワーク プロキシを実行する方法は非常にたくさんあり、ネットワークの背後で学ぶべきことがたくさんあることがわかりました。それまではプロキシソフトのみを使用していましたが、Googleにアクセスするにはプロキシソフトを使用し、ブラウザにプロキシのアドレスを設定する必要がありました。私はエージェンシーの概念しか知りませんし、フォワードエージェントやリバースエージェントがあることも知らなかったので、急いで勉強して知識を補いました。まず、フォワード プロキシとリバース プロキシとは何かを理解してから、実際の使用において 2 つがどのように示されるかを理解します。最後に、フォワード プロキシが何に使用され、リバース プロキシで何ができるかをまとめます。
2. フォワードプロキシ
フォワード プロキシは踏み台マシンのようなもので、プロキシは外部リソースにアクセスします。
例えば:
私はユーザーで、ある Web サイトにはアクセスできませんが、プロキシ サーバーにはアクセスできます。このプロキシ サーバーはどうでしょうか。彼は私がアクセスできない Web サイトにアクセスできます。そこで、まずプロキシ サーバーに接続して、プロキシ サーバーにアクセスできることを伝えます。コンテンツにアクセスできない Web サイトが必要な場合、プロキシ サーバーがコンテンツを取得して私に返します。Web サイト側から見ると、プロキシ サーバーがコンテンツを取得したときの記録は 1 つだけですが、プロキシが Web サイトに通知するかどうかによっては、それがユーザーのリクエストであることがわからない場合があり、ユーザーの情報も隠蔽されます。
クライアントはフォワード プロキシ サーバーをセットアップする必要があります。もちろん、フォワード プロキシ サーバーの IP アドレスとプロキシ プログラムのポートを知っていることが前提となります。
たとえば、以前に CCproxy などのソフトウェアを使用したことがある場合は、ブラウザでhttp://www.ccproxy.com / にプロキシ アドレスを設定する必要があります。
まとめると、フォワードプロキシとは、クライアントと元のサーバー(オリジンサーバー)の間に位置し、リクエストを転送し、取得したコンテンツをクライアントに返すサーバーです。フォワード プロキシを使用するには、クライアントで特別な設定を行う必要があります。
フォワードプロキシの目的:
(1) Google など、以前はアクセスできなかったリソースにアクセスできる
(2) キャッシュしてリソースへのアクセスを高速化できます。
(3) クライアントのアクセスを許可し、オンラインで認証する
(4) エージェントはユーザーのアクセス記録(オンライン行動管理)を記録し、ユーザー情報を外部から隠すことができます。
たとえば、CCProxy は次を使用します。
3. リバースプロキシ
初めてディレクション プロキシに接続したときの感覚は、クライアントはプロキシの存在を認識していませんが、リバース プロキシは外部に対して透過的であり、訪問者は自分がプロキシを訪問していることを知りません。クライアントは設定なしでアクセスできるためです。
リバースプロキシ(リバースプロキシ)の実際の動作形態は、プロキシサーバーを利用してインターネット上の接続要求を受け付け、その要求を内部ネットワーク上のサーバーに転送し、サーバーから得られた結果を要求元のクライアントに返すというものです。インターネット上の接続 このとき、プロキシ サーバーは外部サーバーとして機能します。
リバースプロキシの役割:
(1) イントラネットのセキュリティを確保するため、リバースプロキシを利用してWeb攻撃を防ぐWAF機能を提供可能
大規模な Web サイトの場合、通常、リバース プロキシがパブリック ネットワーク アクセス アドレスとして使用され、Web サーバーがイントラネットになります。
(2) 負荷分散、リバースプロキシサーバー経由でWebサイトの負荷を最適化
4. 両者の違い
Zhihu から 2 枚の写真を借りて表現します。リバース プロキシはなぜリバース プロキシと呼ばれるのでしょうか? - ほぼ知っています
5. nginxのリバースプロキシ
Nginx は、リバース プロキシを介して Web サイトの負荷分散を実現するためのリバース プロキシの構成をサポートしています。この部分では、まず nginx 構成を記述し、次に nginx のプロキシ モジュールとロード バランシング モジュールを詳しく調べる必要があります。
Nginx は proxy_pass_http を通じてプロキシ サイトを構成し、アップストリームは負荷分散を実装します。