同一ドメインだけれども、サブディレクトリだけを別サーバに設置したいので、apacheのリバースプロキシ(mod_proxy)設定手順を調べました。
例
http://test.com/ をサーバA(192.168.0.1)
http://test.com/bbb/ をサーバB(192.168.0.2)にしたい場合
WEBサーバAはWEBサーバBの前段
一部のURLはWEBサーバBに取りに行くといった場合に使える
画像だけ取りに行く
cssだけ取りに行く
管理画面だけ取りに行く
など用途はさまざま
1.サーバAの apache の.confで mod_proxy モジュールをロードする
サーバAの apache の.confに以下を記載もしくはコメントアウト解除
mod_proxyモジュールをロードするようにします。
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so
2.サーバAの apache の.confに以下を記載する
サーバAの apache の.confに以下を記載します。
<Location "/bbb"> ProxyPass http://192.168.0.2 ProxyPassReverse http://192.168.0.2 ProxyPassReverseCookieDomain 192.168.0.2 test.com ProxyPassReverseCookiePath / /bbb/ </Location>
3.サーバAのapache再起動
# apachectl restart
完
他のやり方
<IfModule mod_proxy.c> # これを入れないとHOSTが192.168.1.2になってしまう ProxyPreserveHost On RewriteEngine On # 502 Proxy Error 対策 ProxyTimeout 1800 SetEnv proxy-initial-not-pooled 1 SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1 # exclude (hoge.htmlだけ除外) RewriteCond %{REQUEST_URI} !(^/hoge.html$) RewriteRule ^/(.*) http://192.168.1.2/$1 [R=301,P,L,QSA] ProxyPassReverse / http://192.168.1.2 </IfModule>
参考サイト様
https://httpd.apache.org/docs/2.4/ja/mod/mod_proxy.html#proxytimeout
良く使うApache設定・操作まとめn選
こちらにはapacheの設定など色々まとめています。
Pingback: Apache設定の参考リンク – KUJUNの開発メモ
Pingback: サブディレクトリを別のWebサーバで公開する | クズリーマンのカス備忘録