Visioファイル → https://www.isoppe.jp/upload/log/008.zip
「リバースプロキシ」は、httpリクエストを特定サーバが受けて、そのリクエストをローカルネットワーク内にある
Webサーバへ中継するものです。期待できる効果としては
・ローカルネットワーク内のWebサーバには直接インターネットと通信しないのでセキュリティが向上する
・ディレクトリ単位で単体もしくは複数のサーバを指定できるので負荷分散できる
・アクセスが集中する(負荷が高い)コンテンツの追加が容易になる
・キャッシングすることにより負荷が軽減できる
以下が設定になります。
1.外部Webサーバ(http://example.com)
リバースプロキシするのに必要なモジュールを読み込むように設定します。
#vi /etc/httpd/conf/httpd.conf #LoadModule proxy_module modules/mod_proxy.so #変更前 #LoadModule proxy_http_module modules/mod_proxy_http.so #変更前 ↓ LoadModule proxy_module modules/mod_proxy.so #変更後 LoadModule proxy_http_module modules/mod_proxy_http.so #変更後 |
2.外部Webサーバ(http://example.com)
どのディレクトリへのリクエストは、どのサーバへ中継するかを指定し、アクセス許可/拒否の設定をします。
#vi /etc/httpd/conf/httpd.conf
ProxyRequests off #フォワードプロキシを有効にする場合はon。今回はoff <Proxy *> #リバースプロキシするディレクトリのアクセス許可/拒否を設定します #どのディレクトリへのリクエストは、どのサーバへ中継するかを指定します |
3.内部Webサーバ1,2(http://hoge1.example.com,http://hoge2.example.com)
外部向けのWebサーバからのアクセスを許可します。
#vi /etc/httpd/conf/httpd.conf
<Directory /> |
============================
・proxy_module
フォワードプロキシ、リバースプロキシ機能を有効にするためのモジュール
・proxy_balancer_module
ロードバランシング機能を有効にするためのモジュール
・proxy_ftp_module
FTPサービスでプロキシ機能を有効にするためのモジュール
・proxy_http_module
HTTPサービスでプロキシ機能を有効にするためのモジュール
・proxy_connect_module
主にHTTPS(SSL)サービスでプロキシ機能を有効にするためのモジュール
・proxy_ajp_module(/etc/httpd/conf.d/proxy_ajp.conf)
JAVAがapacheとAJPプロトコル通信するためのモジュール
普段、「プロキシ」「串」と言われているものは、正確には「フォワードプロキシ」です。
ナロー回線でサーバの性能が貧弱な時代、多数のユーザが同じwebコンテンツにリクエストするのは
サーバ側の回線帯域を圧迫するわ、サーバの処理が追いつかなくなるわなのでキャッシングして高速化しちゃおう、てものです。
動的コンテンツが多い昨今、串サーバはWebキャッシュとしての効果は期待薄のような気がします。
とはいえ、企業はWebフィルタリング & 閲覧ロギングとして導入することが殆どだから構わないってか。
検証環境
OS:Cent OS5.6
apache:2.2.3-45.el5