同一ドメインだけれども、サブディレクトリだけを別サーバに設置したいので、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モジュールをロードするようにします。
1 2 |
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so |
2.サーバAの apache の.confに以下を記載する
サーバAの apache の.confに以下を記載します。
1 2 3 4 5 6 |
<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再起動
1 |
# apachectl restart |
完
他のやり方
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<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の設定など色々まとめています。
ステータス
ステータス確認
# service httpd status
or
# /etc/init.d/httpd status...
コメント
[…] NormalBlog.net同一ドメインでサブディレクトリを別サーバに設置して表示させる為のapacheリバー…https://normalblog.net/system/apache-reverse-proxy-mod_proxy/同一ドメインだけれども、サブディレクトリ […]