フォワード エージェントは伝説的なエージェントです。彼の行動原理は踏み台のようなものです。
簡単に言えば、私はユーザーです。特定の Web サイトにアクセスできませんが、プロキシ サーバーにはアクセスできます。
このプロキシ サーバーに関しては、私がアクセスできない Web サイトに彼はアクセスできます。
そこで、最初にプロキシ サーバーに接続し、コンテンツが必要であることを彼に伝えました。アクセスできない Web サイトの内容
プロキシ サーバーがコンテンツを取得して返します
分からない場合もあります。これはユーザーの要求であり、ユーザーの情報も非表示にします。エージェントが Web サイトに通知するかどうかによって異なります。
結論としては、フォワード プロキシは、サーバー間のサーバーです。クライアントとオリジン サーバーの場合、元のサーバーからコンテンツを取得するために、クライアントはプロキシにリクエストを送信し、ターゲット (元のサーバー) を指定します。その後、プロキシはリクエストを元のサーバーに転送して、取得したコンテンツを返します。クライアントに。フォワード プロキシを使用するには、クライアントで特別な設定を行う必要があります。
Apache プロキシ モジュールを有効にする
a2enmod proxy a2enmod proxy_http
フォワード プロキシの設定は非常に簡単です。ブラウザのプロキシ オプションを追加するだけです。 Apache によって構成された vHost ホストは次のとおりです。1.1 Apache 構成 httpd-vhosts.conf (Windows を例にします)
367e5423ee61f30ef297d66282a28f6f 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/" 18d4f33c18dc818d2362eebe2c1a9e11 Options FollowSymLinks AllowOverride All Order allow,deny Allow from all bb15ed4aadeed04b3991578461de0768 #正向代理设置 ProxyRequests On ProxyVia On 7d9fcec3554cc595fd40d709276976ea Order deny,allow Deny from all Allow from 127.0.0.1 248646610573c6b250290f263ba4c0b4 ee672f0beb03b42be69279368a66a410次に、フォワード プロキシ セットを見てみましょう。そのセクション
ProxyRequests On: Apache フォワード プロキシをオンにする
ProxyVia On: プロキシ サーバー チェーンにあるプロキシ リクエストのフローを制御する
公式 Apache2.2 ドキュメントの ProxyVia の説明は次のように引用されています。 :
1. デフォルト値 Off に設定されている場合、特別な処理は行われません。リクエストまたはレスポンスに「Via:」ヘッダーが含まれている場合、変更せずに通過します。
2. On に設定すると、各リクエストと応答は現在のホストに対応する「Via:」ヘッダーを取得します。
3. Full に設定すると、Apache サーバーのバージョンが生成された各 "Via:" ヘッダーに追加され、"Via:" 注釈フィールドに表示されます。
4. [ブロック] に設定すると、各プロキシ リクエストのすべての「Via:」ヘッダー行が削除されます。また、新しい「Via:」ヘッダーは生成されません。
6ee15aaa635d127fa1757e7ffe9b4b24...248646610573c6b250290f263ba4c0b4: プロキシにアクセスできるユーザーを制御するために使用されます
7d9fcec3554cc595fd40d709276976ea Order deny,allow Deny from all Allow from 127.0.0.1 248646610573c6b250290f263ba4c0b4実際に使用するときにローカル マシンがプロキシを使用できるようにここで設定します。
#1.2 ブラウザ設定 (例として FireFox を使用します)
# 1.3 アクセス効果
www.sina.com にアクセスして HTTP リクエストを観察します。 応答:
Via: www.test.com で、フォワード プロキシが次のとおりであることがわかります。成功。
にアクセスしますが、テスト。Readme ページは私には存在しません。
彼はそれを別のサーバーから秘密裏に取得し、それを自分のコンテンツとしてユーザーに吐き出しました。
#しかし、ユーザーはそれを知りませんでした
结论就是 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(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('Location: http://www.proxypass.com/proxy/result.php'); ?>
那么在重定向的时候,Apache会将HTTP请求重新设为 http://www.test.com/proxy/result.php, 这样的作用稍后讲解
www.proxypass.com/proxy/result.php 中有如下代码:
<?php echo 'in proxypass.com <br>'; ?>
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 サイトを参照してください。 関連する推奨事項:Google Playに自動ログインしてアプリレポートをダウンロードする関連コンテンツを紹介します
以上がフォワードプロキシとリバースプロキシの違いを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。