#author("2018-08-31T15:36:49+09:00","","") #author("2018-08-31T15:37:25+09:00","","") [[CentOS7]] *Apache httpd : 特定のコンテンツへのリクエストを転送する [#p425530c] mod_proxy モジュールを有効にして、特定のコンテンツへのリクエストを別の Web サーバーに転送するリバースプロキシ機能の設定をします。 -www.hoge.com [10.0.0.31] - Webサーバー#1 -node01.hoge.com [10.0.0.51] - Webサーバー#2 +www.hoge.com [10.0.0.31] - Webサーバー#1 +node01.hoge.com [10.0.0.51] - Webサーバー#2 (1) のサーバーの / 以下のリクエストを (2) のサーバーの / 以下へ転送します。 mod_proxy は httpd パッケージに含まれているため、パッケージの追加インストールは不要です。また、mod_proxy モジュールはデフォルトで有効になっているため、プロキシ設定をするのみで OK です。 |BGCOLOR(black):COLOR(white):|c |&color(lightpink){# モジュールはデフォルトで有効になっている};| |[root@localhost ~]# grep "mod_proxy" /etc/httpd/conf.modules.d/00-proxy.conf| |LoadModule proxy_module modules/mod_proxy.so &br; LoadModule proxy_ajp_module modules/mod_proxy_ajp.so &br; ..... &br; LoadModule proxy_http_module modules/mod_proxy_http.so &br; LoadModule proxy_scgi_module modules/mod_proxy_scgi.so &br; | |[root@localhost ~]# vi /etc/httpd/conf.d/r_proxy.conf| |&color(lightpink){# 新規作成};| |<IfModule mod_proxy.c> &br; ProxyRequests Off &br; <Proxy *> &br; Require all granted &br; </Proxy> &br; &color(lightpink){# 転送先サーバとディレクトリ}; &br; &br; ProxyPass / http://node01.hoge.com/ &br; ProxyPassReverse / http://node01.hoge.com/ &br; </IfModule>| |[root@localhost ~]# systemctl restart httpd| 転送設定をした / へアクセスして、設定通りバックエンドのサーバーが応答するか確認します。 上記の設定に加えて、負荷分散をすることも可能です。 -www.hoge.com [10.0.0.31] - Webサーバー#1 -node01.hoge.com [10.0.0.51] - Webサーバー#2 -node02.hoge.com [10.0.0.52] - Webサーバー#3 +www.hoge.com [10.0.0.31] - Webサーバー#1 +node01.hoge.com [10.0.0.51] - Webサーバー#2 +node02.hoge.com [10.0.0.52] - Webサーバー#3 (1) のサーバーの / 以下のリクエストを (2),(3) のサーバーへ、リクエスト数に応じて負荷分散をするように設定します。 |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /etc/httpd/conf.d/r_proxy.conf| |&color(lightpink){# 新規作成};| |<IfModule mod_proxy.c> &br; ProxyRequests Off &br; <Proxy *> &br; Require all granted &br; </Proxy> &br; &color(lightpink){# lbmethod でロードバランス方法を指定。転送量のバイト数で負荷分散する「bytraffic」も指定可能。}; &br; &br; ProxyPass / balancer://cluster lbmethod=byrequests &br; <proxy balancer://cluster> &br; BalancerMember http://node01.hoge.com/ loadfactor=1 &br; BalancerMember http://node02.hoge.com/ loadfactor=1 &br; </proxy> &br; </IfModule>| |[root@localhost ~]# systemctl restart httpd| 転送設定をした / へアクセスして動作確認します。 ブラウザの更新ボタンを何度か押下し、バックエンドサーバーが切り替わることを確認してください。