目次
フォワード エージェントのコンセプト" >フォワード エージェントのコンセプト
两者区别" >两者区别
ホームページ バックエンド開発 PHPチュートリアル フォワードプロキシとリバースプロキシの違いを理解する

フォワードプロキシとリバースプロキシの違いを理解する

Jun 11, 2018 am 10:49 AM

フォワード エージェントのコンセプト

フォワード エージェントは伝説的なエージェントです。彼の行動原理は踏み台のようなものです。
簡単に言えば、私はユーザーです。特定の Web サイトにアクセスできませんが、プロキシ サーバーにはアクセスできます。
このプロキシ サーバーに関しては、私がアクセスできない Web サイトに彼はアクセスできます。
そこで、最初にプロキシ サーバーに接続し、コンテンツが必要であることを彼に伝えました。アクセスできない Web サイトの内容
プロキシ サーバーがコンテンツを取得して返します

Web サイトの観点から見ると、プロキシ サーバーがコンテンツを取得しに来たときのレコードは 1 つだけです

分からない場合もあります。これはユーザーの要求であり、ユーザーの情報も非表示にします。エージェントが Web サイトに通知するかどうかによって異なります。

結論としては、フォワード プロキシは、サーバー間のサーバーです。クライアントとオリジン サーバーの場合、元のサーバーからコンテンツを取得するために、クライアントはプロキシにリクエストを送信し、ターゲット (元のサーバー) を指定します。その後、プロキシはリクエストを元のサーバーに転送して、取得したコンテンツを返します。クライアントに。フォワード プロキシを使用するには、クライアントで特別な設定を行う必要があります。
Apache プロキシ モジュールを有効にする

a2enmod proxy
a2enmod proxy_http
ログイン後にコピー

フォワード プロキシの設定は非常に簡単です。ブラウザのプロキシ オプションを追加するだけです。 Apache によって構成された vHost ホストは次のとおりです。1.1 Apache 構成 httpd-vhosts.conf (Windows を例にします)

<VirtualHost *:80>
    ServerAdmin prograsliu@gmail.com
    DocumentRoot "D:/www/test"
    ServerName www.test.com
    ServerAlias test.com
    ErrorLog "logs/test.com-error.log"
    CustomLog "logs/test.com-access.log" common    
    Alias /sublook "D:/www/test/look/sublook/"
    <Directory "D:/www/test">
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    
    #正向代理设置
    ProxyRequests On
    ProxyVia On
    <Proxy *>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Proxy>
</VirtualHost>
ログイン後にコピー
次に、フォワード プロキシ セットを見てみましょう。そのセクション

ProxyRequests On: Apache フォワード プロキシをオンにする
ProxyVia On: プロキシ サーバー チェーンにあるプロキシ リクエストのフローを制御する
公式 Apache2.2 ドキュメントの ProxyVia の説明は次のように引用されています。 :
1. デフォルト値 Off に設定されている場合、特別な処理は行われません。リクエストまたはレスポンスに「Via:」ヘッダーが含まれている場合、変更せずに通過します。
2. On に設定すると、各リクエストと応答は現在のホストに対応する「Via:」ヘッダーを取得します。
3. Full に設定すると、Apache サーバーのバージョンが生成された各 "Via:" ヘッダーに追加され、"Via:" 注釈フィールドに表示されます。
4. [ブロック] に設定すると、各プロキシ リクエストのすべての「Via:」ヘッダー行が削除されます。また、新しい「Via:」ヘッダーは生成されません。
...: プロキシにアクセスできるユーザーを制御するために使用されます

<Proxy *>
     Order deny,allow
    Deny from all
     Allow from 127.0.0.1
</Proxy>
ログイン後にコピー
実際に使用するときにローカル マシンがプロキシを使用できるようにここで設定します。


#1.2 ブラウザ設定 (例として FireFox を使用します)

# 1.3 アクセス効果
www.sina.com にアクセスして HTTP リクエストを観察します。 応答:


Via: www.test.com で、フォワード プロキシが次のとおりであることがわかります。成功。


リバース プロキシの概念

例を続けます:

ユーザーは http://test.me/readme

にアクセスしますが、テスト。Readme ページは私には存在しません。
彼はそれを別のサーバーから秘密裏に取得し、それを自分のコンテンツとしてユーザーに吐き出しました。
#しかし、ユーザーはそれを知りませんでした

ここで説明する内容 test.meというドメイン名に対応するサーバーにはリバースプロキシ機能が設置されています

结论就是 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容 原本就是它自己的一样。

2.1 Apache设置

<VirtualHost *:80>
     ServerAdmin prograsliu@gmail.com
     DocumentRoot "D:/www/test"
     ServerName www.test.com
     ServerAlias test.com
     ErrorLog "logs/test.com-error.log"
     CustomLog "logs/test.com-access.log" common    
     Alias /sublook "D:/www/test/look/sublook/"
     <Directory "D:/www/test">
         Options FollowSymLinks
         AllowOverride All
         Order allow,deny
         Allow from all
     </Directory>
     
     #反向代理设置
     ProxyPass /proxy http://www.proxypass.com/proxy
     ProxyPassReverse /proxy http://www.proxypass.com/proxy
 
 </VirtualHost>
 
 <VirtualHost *:80>
     ServerAdmin prograsliu@gmail.com
     DocumentRoot "D:/www/proxypass"
     ServerName www.proxypass.com
     ServerAlias proxypass.com
     <Directory "D:/www/proxypass">
         Options FollowSymLinks
         AllowOverride All
         Order allow,deny
         Allow from all
     </Directory>
 </VirtualHost>
ログイン後にコピー

现在看反向代理设置那一段
ProxyPass /proxy http://www.proxypass.com/proxy : 将 www.test.com/proxy 域下的所有请求转发给 www.proxypass.com/proxy 代理,例如 www.test.com/proxy/login.php 会交给 www.proxypass.com/proxy/login.php 代理
ProxyPassReverse /proxy http://www.proxypass.com/proxy :
www.proxypass.com/proxy/login.php 中有如下代码:

<?php
    header(&#39;Location: http://www.proxypass.com/proxy/result.php&#39;);
?>
ログイン後にコピー

那么在重定向的时候,Apache会将HTTP请求重新设为 http://www.test.com/proxy/result.php, 这样的作用稍后讲解
www.proxypass.com/proxy/result.php 中有如下代码:

<?php
    echo &#39;in proxypass.com <br>&#39;;
?>
ログイン後にコピー

2.2 浏览器访问效果
访问 www.test.com/proxy/login.php
Apache将请求交给 www.proxypass.com/proxy/login.php 代理,HTTP请求如图:

可以发现其实Request中的请求还是 www.test.com 的,但是它确实是由 www.proxypass.com 来处理的

proxypass.com/proxy/login.php 重定向到 proxypass.com/proxy/result.php
页面显示 in proxypass.com
HTTP请求如图:



也可以看到请求依然是 www.test.com/proxy/result.php

这里就是 ProxyPassReverse 发挥作用的地方,如果不加这个项,重定向后HTTP请求会如下图:


可以发现请求中的GET是 www.proxypass.com 而不是 www.test.com ,这是因为配置了ProxyPassReverse后,proxypass.com/proxy/login.php 在重定向到 proxypass.com/proxy/result.php 时,Apache会将它调整回 test.com/proxy/result.php , 然后Apache再将 test.com/proxy/result.php 代理给 proxypass.com/proxy/result.php,所以说配置了 ProxyPassReverse 后,即使 proxypass.com/proxy 下的程序有重定向到其他 proxypss.com/proxy 的文件的(如 login.php 重定向到 result.php),你也不会在请求中发现 proxypass.com 的影子。

两者区别

用途上来讲:

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。
正向代理还可以使用缓冲特性减少网络使用率。
反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。
反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。

另外,反向代理还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。

セキュリティの観点:

フォワード プロキシを使用すると、クライアントはそれを介して任意の Web サイトにアクセスし、クライアント自体を隠すことができるため、許可されたユーザーのみがアクセスできるようにセキュリティ対策を講じる必要があります。クライアントがサービスを提供します。

リバース プロキシは外部に対して透過的であるため、訪問者は自分がプロキシを訪問していることを知りません。

この記事では、フォワード プロキシとリバース プロキシの違いについて説明します。関連コンテンツの詳細については、php 中国語 Web サイトを参照してください。

関連する推奨事項:

Apache を使用して仮想ホストを構築する方法

sh memcached を起動して監視する方法プロセス

Google Playに自動ログインしてアプリレポートをダウンロードする関連コンテンツを紹介します

以上がフォワードプロキシとリバースプロキシの違いを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法 リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法 Aug 01, 2023 am 09:44 AM

リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法 はじめに: FastAPI と Nginx は 2 つの非常に人気のある Web 開発ツールです。 FastAPI は高性能 Python フレームワークであり、Nginx は強力なリバース プロキシ サーバーです。これら 2 つのツールを一緒に使用すると、Web アプリケーションのパフォーマンスと信頼性が向上します。この記事では、リバース プロキシと負荷分散のために FastAPI で Nginx を使用する方法を学びます。逆生成とは何ですか

Nginx リバースプロキシにおけるアクセス制御とフロー制御の適用 Nginx リバースプロキシにおけるアクセス制御とフロー制御の適用 Jun 10, 2023 pm 06:58 PM

Nginx は、リバース プロキシ サーバーとしても広く使用されている、高性能、オープンソース、多用途の Web サーバーです。リバース プロキシ サーバーを使用すると、負荷分散、高可用性、アクセス制御、トラフィック制御などの機能を提供できます。この記事では、Nginx リバースプロキシにおけるアクセス制御とフロー制御のアプリケーションを紹介します。 1. アクセス制御 IP アドレス ブラックリスト/ホワイトリスト Nginx は、IP アドレス ブラックリストまたはホワイトリストを構成することで、リクエストに対するアクセス制御を実装できます。ブラックリスト内の IP アドレスはアクセスを拒否されますが、ホワイトリスト内の IP アドレスはアクセスを拒否されます。

Gin フレームワークにおけるリバース プロキシとリクエスト転送の詳細な説明 Gin フレームワークにおけるリバース プロキシとリクエスト転送の詳細な説明 Jun 23, 2023 am 11:43 AM

Web アプリケーションの急速な開発に伴い、開発に Golang 言語を使用する企業が増えています。 Golang 開発では、Gin フレームワークの使用が非常に一般的な選択肢です。 Gin フレームワークは、HTTP エンジンとして fasthttp を使用し、軽量でエレガントな API 設計を備えた高性能 Web フレームワークです。この記事では、リバース プロキシのアプリケーションと、Gin フレームワークでの転送リクエストについて詳しく説明します。リバース プロキシの概念 リバース プロキシの概念は、プロキシ サーバーを使用してクライアントを作成することです。

静的 Web ページへのアクセスを高速化するための Nginx リバース プロキシ キャッシュ構成 静的 Web ページへのアクセスを高速化するための Nginx リバース プロキシ キャッシュ構成 Jul 04, 2023 pm 06:09 PM

静的 Web ページ アクセスの高速化を実現する Nginx リバース プロキシ キャッシュ構成 はじめに: インターネットの急速な発展に伴い、アクセス速度は Web サイトの運用において非常に重要な要素となっています。 Web ページのアクセス速度を向上させるために、Nginx リバース プロキシ キャッシュ テクノロジを使用して Web ページを高速化できます。この記事では、Nginx を使用してリバース プロキシ キャッシュを構成し、静的 Web ページを高速化する方法を紹介します。 Nginx リバース プロキシ キャッシュの構成: Nginx のインストール: まず、Nginx サーバーをインストールする必要があります。これは apt-ge を通じて実行できます。

Nginx Proxy Manager を使用して HTTPS プロトコルでリバース プロキシを実装する方法 Nginx Proxy Manager を使用して HTTPS プロトコルでリバース プロキシを実装する方法 Sep 26, 2023 am 08:40 AM

NginxProxyManager を使用して HTTPS プロトコルでリバース プロキシを実装する方法 近年、インターネットの普及とアプリケーション シナリオの多様化に伴い、Web サイトやアプリケーションへのアクセス方法はますます複雑になっています。 Web サイトへのアクセス効率とセキュリティを向上させるために、多くの Web サイトはユーザーのリクエストを処理するためにリバース プロキシを使用し始めています。 HTTPS プロトコルのリバース プロキシは、ユーザーのプライバシーを保護し、通信のセキュリティを確保する上で重要な役割を果たします。この記事ではNginxProxyの使い方を紹介します。

Nginx Proxy Manager を使用してリバース プロキシ負荷分散戦略を実装する Nginx Proxy Manager を使用してリバース プロキシ負荷分散戦略を実装する Sep 26, 2023 pm 12:05 PM

NginxProxyManager を使用してリバース プロキシ負荷分散戦略を実装する NginxProxyManager は、リバース プロキシと負荷分散を簡単に実装できる Nginx ベースのプロキシ管理ツールです。 NginxProxyManager を構成することで、リクエストを複数のバックエンド サーバーに分散して負荷分散を実現し、システムの可用性とパフォーマンスを向上させることができます。 1. NginxProxyManager をインストールして設定する

Web サイトのアクセス速度を向上させる Nginx リバース プロキシ キャッシュ構成 Web サイトのアクセス速度を向上させる Nginx リバース プロキシ キャッシュ構成 Jul 04, 2023 pm 10:01 PM

Web サイトのアクセス速度を向上させる Nginx リバース プロキシ キャッシュ構成 はじめに: インターネット時代において、Web サイトのアクセス速度は非常に重要です。 Web サイトの読み込みが遅いとユーザーはイライラし、ユーザー離れを引き起こす可能性があります。 Webサイトのアクセス速度を向上させるには、リバースプロキシキャッシュを利用してサーバーの負荷を軽減し、ページの読み込みを高速化する方法が一般的です。この記事では、Nginxを使用してリバースプロキシキャッシュを設定し、Webサイトのアクセス速度を向上させる方法を紹介します。 1. Nginx リバースプロキシキャッシュとは何ですか?ンギン

【まとめ】PHPリバースプロキシにアクセスできない一般的な原因と解決策 【まとめ】PHPリバースプロキシにアクセスできない一般的な原因と解決策 Mar 21, 2023 pm 07:10 PM

リバース プロキシを使用すると、アクセス不能の問題が発生する可能性があります。特に PHP をリバース プロキシとして使用する場合、この問題はより顕著になるようです。この記事では、この問題の一般的な原因と解決策について説明します。

See all articles