同一ドメインでサブディレクトリを別サーバに設置して表示させる為のapacheリバースプロキシ(mod_proxy)設定手順

同一ドメインでサブディレクトリを別サーバに設置して表示させる為のapacheリバースプロキシ(mod_proxy)設定手順

同一ドメインだけれども、サブディレクトリだけを別サーバに設置したいので、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

http://blog.livedoor.jp/techblog/tag/%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7

良く使うApache設定・操作まとめn選

こちらにはapacheの設定など色々まとめています。

https://normalblog.net/system/apache_matome/

2 Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です