Apache httpd : mod_proxy の設定2019/12/26 |
|
[mod_proxy] モジュールを有効にして、特定のコンテンツへのリクエストを別の Web サーバーに転送するリバースプロキシ機能の設定をします。
当例では以下のような環境で [Web Server#1] へのリクエストを [Web Server#2] へ転送します。
-----------+---------------------------+-----------
| |
|10.0.0.31 |10.0.0.51
+----------+-----------+ +-----------+----------+
| [ dlp.srv.world ] | | [ node01.srv.world ] |
| Web Server#1 | | Web Server#2 |
+----------------------+ +----------------------+
|
| [1] | [mod_proxy] モジュールは [httpd] パッケージに含まれているため、追加インストールは不要です。 また、モジュールはデフォルトで有効になっているため、プロキシ用の設定を追加するのみで OK です。 |
|
# モジュールはデフォルトで有効になっている [root@www ~]# grep "mod_proxy" /etc/httpd/conf.modules.d/00-proxy.conf LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so ..... .....
[root@www ~]#
vi /etc/httpd/conf.d/revers_proxy.conf # 新規作成
<IfModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
# 転送先サーバとディレクトリ
ProxyPass / http://node01.srv.world/
ProxyPassReverse / http://node01.srv.world/
</IfModule>
systemctl restart httpd |
| [2] | SELinux を有効にしている場合は、ポリシーの変更が必要です。 |
|
[root@www ~]# setsebool -P httpd_can_network_connect on |
| [3] | 転送設定をした / へアクセスして、設定通りバックエンドのサーバーが応答するか確認します。 |
|
| [4] |
負荷分散をすることも可能です。
例として、[Web Server#1] へのリクエストを [Web Server#2], [Web Server#3] へ、リクエスト数に応じて負荷分散をするように設定します。
-----------+---------------------------+--------------------------+------------
| | |
|10.0.0.31 |10.0.0.51 |10.0.0.52
+----------+-----------+ +-----------+----------+ +-----------+----------+
| [ www.srv.world ] | | [ node01.srv.world ] | | [ node02.srv.world ] |
| Web Server#1 | | Web Server#2 | | Web Server#3 |
+----------------------+ +----------------------+ +----------------------+
|
|
[root@www ~]#
vi /etc/httpd/conf.d/revers_proxy.conf # 新規作成
<IfModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
Require all granted
</Proxy>
# lbmethod でロードバランス方法を指定
# 転送量のバイト数で負荷分散する [bytraffic] も指定可能
ProxyPass / balancer://cluster lbmethod=byrequests
<proxy balancer://cluster>
BalancerMember http://node01.srv.world/ loadfactor=1
BalancerMember http://node02.srv.world/ loadfactor=1
</proxy>
</IfModule>
systemctl restart httpd |
| [5] | 転送設定をした / へアクセスして動作確認します。アクセス毎にバックエンドサーバーが切り替われば OK です。 |
|
|
| Sponsored Link |
|
|