apacheでリバースプロキシを立てる

前提

クライアント → リバースプロキシ(今回設定する箇所) → 裏にあるサーバ

としたい。

設定

リバースプロキシとするサーバに、以下を入れて、systemctl restart httpdする。

# tail -n 10 /etc/httpd/conf/httpd.conf

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
Listen 8888
<VirtualHost *:8888>
        ProxyPreserveHost On

        ProxyPass / http://back-server:8888/
        ProxyPassReverse / http://back-server:8888/
</VirtualHost>

動作

リバースプロキシは、

  • 8888でリクエストが来ると(典型的には、クライアントからhttp://[リバプロのホスト名]:8888/hoge/fuga でリクエストが送られてくると)
  • 裏にあるサーバ(back-server)へ、http://back-server:8888/hoge/fuga でアクセスし、
  • 結果をクライアントに返す。

ProxyPassの設定は・・・

  • ProxyPass /AAA BBBと設定すると、http://[リバプロのホスト名]:8888/AAABBBと読み替える動きをする
  • 仮にProxyPass /hoge http://back-server:8888/ とした場合、http://back-server:8888/fugaに読み替えて裏のサーバにアクセスする。

ProxyPassReverse の設定はProxyPassの設定と同じに

参考

rainbow-engine.com