Apacheビルドプロキシサーバー
著者:zbuger
ブログ:https://blog.csdn.net/zbuger/article/details/51648048
Apacheバージョン2.2
ご存知のとおり、Apacheは現在最高のHTTPサーバーです。実際、サーバーとしてだけでなく、プロキシサーバーとしても使用できます。この記事では、Apacheを使用してHTTPプロキシサーバーをセットアップする方法について説明します。
この記事は、Apache2.0.47のWin32バージョンに基づいています。以前のApache1.xバージョンの構成方法は少し異なりますが、ここでは説明しません。
Apacheのインストール。
http://www.apache.orgからApacheインストーラーをダウンロードし、インストーラーをダブルクリックしてインストールします。インストール後、Apacheサーバーを起動します。次に、IEを開き、IEのアドレスバーにhttp:// localhost /と入力すると、Apacheのウェルカム画面が表示されます。
httpd.conf
次に、HTTPプロキシサーバー機能をサポートするようにApache構成ファイルを変更します。テキストエディタでhttpd.confファイルを開きます。
まず、プロキシサーバーモジュールを追加します。次の行を見つけます。
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
対応するモジュールを有効にするには、前の#を削除します。次に、Apacheを再起動します。(コマンドラインnet stopapache2を使用してからnetstart apache2を使用してサーバーを再起動することもできます。)この時点では、Apacheはまだプロキシサーバーではありませんが、正常に起動できるはずです。
次に、構成ファイルに次の行を追加します。
ProxyRequests On
その後、Apacheを再起動します。現時点では、ApacheがHTTPプロキシサーバーです。IEを開き、[ツール]→[インターネットオプション]→[接続]→[LAN設定]メニューを選択し、[LANにプロキシサーバーを使用する]を選択して、以下のアドレスに127.0.0.1、ポートに80を入力します。記入後、確認してください。この時点でIE経由でインターネットに接続できる場合は、プロキシ設定が正しいことを意味します。(注:ここでのポート80は、httpd.confのListenコマンドで指定されたポート番号です。Listenコマンドを変更してApacheが他のポートをリッスンするようにするには、IE設定で対応する変更を加えてください。さらに、ダイヤルアップ接続の場合は、LANプロキシ設定を変更するのではなく、「ツール→インターネットオプション→接続」で対応するダイヤルアップ接続のプロキシ設定を変更してください)
アクセス制御
次に、アクセス制御を試みます。httpd.confを編集し、次の設定を追加します。
許可および禁止
<Proxy *>
Order allow,deny
Allow from all
Deny from 127.0.0.1
</Proxy>
この構成は、ローカルコンピューターを除くすべてのコンピューターがエージェントへのアクセスを許可されることを意味します。次に、Apacheを再起動します。IEを使用してインターネットに再度接続しようとすると、次のようなメッセージが表示されます。
Forbidden
You don't have permission to access http://www.google.com/ on this server.
これは、ローカルコンピュータがプロキシを使用することを禁止されていることを示しています。それどころか、次の設定:
<Proxy *>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Proxy>
ローカルコンピュータのみがプロキシサーバーの使用を許可されていることを意味します。
Proxy命令の後ろの*記号は、クライアントがプロキシサーバーを使用してアクセスする宛先アドレスを示します。上記の2つの例では、*記号はすべてのアドレスを表します。つまり、プロキシサーバーを使用してすべてのアドレスにアクセスすることは禁止されています。
アドレスを禁止する
特定のアドレスのみを禁止する場合は、次の例を参照してください。
<Proxy http://www.google.com/>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Proxy>
<Proxy http://www.yahoo.co.jp/r/*>
Order allow,deny
Allow from all
Deny from 127.0.0.1
</Proxy>
上記の例は、ローカルコンピューターのみがhttp://www.google.com/にアクセスでき、ローカルコンピューターがhttp://www.yahoo.co.jp/r/の下のリソースにアクセスできないことを意味します。ApacheのProxyコマンドは現在、複数のターゲットアドレスをサポートできないため、<Proxy http://www.google.com/ http://www.yahoo.co.jp >の形式で記述できないため、複数のターゲットアドレスを制限する場合は、複数のプロキシ命令を使用する必要があります。
ProxyBlock
すべてのユーザー(一部のユーザーだけでなく)が特定のアドレスにアクセスするのを制限したい場合は、ProxyBlockコマンドを使用できます。
ProxyBlock microsoft co.jp www.google.com
上記の手順では、マイクロソフトを含むアドレス、co.jpを含むアドレス、www.google.comを含むアドレスの3種類のターゲットアドレスをブロックします。しかし、実際にIEを使用してテストすると、http://www.google.com/とhttp://www.google.co.kr/(Google Koreaサイト)にはアクセスできませんが、http:// www。 google.co.kr/は上記のブロックルールを満たしていません。これは、Apacheが起動すると、ブロックされたアドレスのホスト名またはドメイン名のように見える文字列に対してドメイン名の解決が実行されるためです。解決が成功すると、対応するターゲットIPアドレスがブロックされます。www.google.co.krとwww.google.comのIPアドレスは同じであるため、www.google.co.krもブロックされます。また、Apacheはドメイン名を解決しようとするため、ProxyBlockを使用すると、Apacheの起動時間が長くなります。
また、ProxyBlock *を作成すると、プロキシサーバーを介してアドレスにアクセスできなくなることにも注意してください。
二次エージェント
最後に、第2レベルのエージェントを紹介します。Apacheをセカンダリプロキシとして使用できます。つまり、すでにプロキシサーバーであるApacheに、他のプロキシサーバーを介してインターネットに接続させることができます。次のコマンドを追加します。
ProxyRemote * http://12.34.56.78:8080
Apacheに12.34.56.78:8080をプロキシサーバーとして使用させることができます。ProxyRemote命令の後の最初のパラメーターは、プロトコル名またはターゲットアドレスを表します。次に例を示します。
ProxyRemote ftp http://12.34.56.78:8080 # 对于所有ftp请求使用二级代理
ProxyRemote http://www.google.com/ http://12.34.56.78:8080 # 当访问 www.google.com时使用二级代理
WindowsでApachehttpdプロキシサーバーを構成する
著者:チャーリーアッシュ兄弟
ブログ:https://blog.csdn.net/qwert678000/article/details/78789974
プロキシ情報を構成する
構成ファイルApache24 / conf /httpd.confを開きます。
ポートの変更をリッスンします(監視するポートとIPに変更します)
Listen 192.168.2.5:9001
必要なモジュールをロードします
LoadModuleaccess_compat_module modules/mod_access_compat.so
LoadModulelbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModulelbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModulelbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModulelbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModuleproxy_module modules/mod_proxy.so
LoadModuleproxy_connect_module modules/mod_proxy_connect.so
LoadModuleproxy_ftp_module modules/mod_proxy_ftp.so
LoadModuleproxy_html_module modules/mod_proxy_html.so
LoadModuleproxy_http_module modules/mod_proxy_http.so
LoadModulexml2enc_module modules/mod_xml2enc.so
# 注释掉ssl模块,不然启动的时候需要443端口会报错
#LoadModulessl_module modules/mod_ssl.so
プロキシ構成を追加し、Apacheフォワードプロキシを有効にして、すべてのリクエストがプロキシにアクセスできるようにします
ProxyRequests On
<Proxy *>
Requireall granted
</Proxy>
Linuxクライアント構成の検証
vi / etc / profile //このファイルを編集し、下部に次のプロキシ構成を追加します
http_proxy=192.168.2.3:9901 # http协议使用代理服务器地址
https_proxy=$http_proxy # https协议使用安全代理地址
no_proxy=localhost,127.0.0.1 # 不使用代理的主机或IP
export http_proxyhttps_proxy no_proxy
その中で
192.168.2.3::代理地址,可以是IP,也可以是域名;
9901:使用的端口;
保存して終了すると、ソース/ etc / profileがすぐに有効になります。テスト:
[root@localhost temp]# cd ~/temp
[root@localhost temp]# wget www.baidu.com
--2019-01-07 13:41:25-- http://www.baidu.com/
正在连接 192.168.2.3:9901... 已连接。
...