目次
リバースプロキシとは
クライアントと Web サーバーの間に入って Web 通信の応答を代理で応答する機能で、主に次の目的で使用されます。
セキュリティ
DMZ にリバースプロキシを配置すれば、重要なデータを扱っている Web サーバー/アプリは直接インターネットに接続する必要がありません。
また、リバースプロキシ上で SSL や WAF(Web アプリケーションファイアウォール)などのセキュリティ対策をすれば、Web サーバ/アプリに直接手を加えることなく安全性を高められます。
負荷分散
同じ処理をする Web サーバー/アプリが複数ある環境では、リバースプロキシによってリクエストを分散させることができます。クライアントからは単一サーバー構成と変わらず、大量のアクセスをさばけるシステムを構築できます。
リバースプロキシ構築手順
検証環境
リバースプロキシ設定(CentOS 6.3)
squid インストール
yum -y install squid
squid.conf 設定編集
vi /etc/squid/squid.conf
squid.conf 編集内容
http_access allow all
# http_access deny all
http_port 80 defaultsite=10.1.23.253 # 転送先 Web サーバーの IP アドレスを指定
cache_peer 10.1.23.253 parent 80 0 no-query originserver # 転送先 Web サーバーの IP アドレスを指定
cache_mem 256 MB # メモリキャッシュサイズ
visible_hostname prox.srv.world # ホスト名定義
squid 再起動
/etc/rc.d/init.d/squid restart
上記は squid を使った例ですが、Apache の場合は次のとおりです。
httpd.conf 設定編集
vi /etc/httpd/conf/httpd.conf
httpd.conf 編集内容
# LoadModule proxy_module modules/mod_proxy.so
# LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyRequests Off
ProxyPass /WebGoat http://10.1.23.253 # 転送先 Web サーバーの IP アドレスを指定
ProxyPassReverse /WebGoat http://10.1.23.253/WebGoat # 転送先 Web サーバーの IP アドレスを指定
httpd 再起動
/etc/rc.d/init.d/httpd restart
参考:Web サーバー設定(CentOS 8.1)
Web サーバー関連設定
systemctl start httpd
firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all | grep http
services: cockpit dhcpv6-client http ssh
クライアントからの接続テスト
クライアントからリバースプロキシに HTTP(S) アクセスすると、リバースプロキシが Web サーバーの代理で応答を行い、Web ページが参照できます。
関連記事
エラー内容 クライアントからリバースプロキシサーバー(CentOS 6.3 / Apache 2.2.15)経由で Web サーバーに接続した際に 503 エラーとなる事象にあいました。 503 Service Temporari[…]
以上