mod_proxy mod_rewrite
есть tomcat слушает 8080
есть две директории с одним и тем же контентом .
надо чтобы запрос из домена test.com преобразовывался таким образом .
http://myserver/my_app -> http://myserver/my_app1
а запросы из всех остальных доменов так и оставались
http://myserver/my_app -> http://myserver/my_app
а потом еще через mod_proxy отправлялись к tomcat-у
пытаюсь для этого настроить apache с mod_proxy и mod_rewrite
NameVirtualHost *
<VirtualHost *>
RewriteEngine on
RewriteOptions Inherit
RewriteCond %{REMOTE_ADDR} ^1\.2.*$
RewriteRule ^(.*)$ - [S=2,L]
## тоесть если REMOTE_ADDR=хост из домена 1 то пропустить следующие 2
правила .
RewriteCond %{REMOTE_ADDR} ^.*$
RewriteRule /my_app(.*)$ http://%{SERVER_NAME}/my_app1$1 [P]
RewriteLog /var/log/apache2/rewrite.log
RewriteLogLevel 9
ProxyRequests Off
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
CustomLog /var/log/apache2/proxy_log common
</VirtualHost>
в итоге получаю в логах что-то типа цикла
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d5f78/initial] (2) init rewrite engine with
requested uri /my_app/
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d5f78/initial] (3) applying pattern '^(.*)$' to
uri '/my_app/'
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d5f78/initial] (4) RewriteCond:
input='192.168.8.135' pattern='^192\.5.*$' => not-matched
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d5f78/initial] (3) applying pattern
'/my_app(.*)$' to uri '/my_app/'
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d5f78/initial] (4) RewriteCond:
input='192.168.8.135' pattern='^.*$' => matched
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d5f78/initial] (2) rewrite '/my_app/' ->
'http://host4/my_app1/'
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d5f78/initial] (2) forcing proxy-throughput with
http://host4/my_app1/
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d5f78/initial] (1) go-ahead with proxy request
proxy:http://host4/my_app1/ [OK]
192.168.3.24 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d9f98/initial] (2) init rewrite engine with
requested uri /my_app1/
192.168.3.24 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d9f98/initial] (3) applying pattern '^(.*)$' to
uri '/my_app1/'
192.168.3.24 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d9f98/initial] (4) RewriteCond:
input='192.168.3.24' pattern='^192\.5.*$' => not-matched
192.168.3.24 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d9f98/initial] (3) applying pattern
'/my_app(.*)$' to uri '/my_app1/'
192.168.3.24 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d9f98/initial] (1) pass through /my_app1/
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d9f98/initial] (2) init rewrite engine with
requested uri /my_app1/search
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d9f98/initial] (3) applying pattern '^(.*)$' to
uri '/my_app1/search'
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d9f98/initial] (4) RewriteCond:
input='192.168.8.135' pattern='^192\.5.*$' => not-matched
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d9f98/initial] (3) applying pattern
'/my_app(.*)$' to uri '/my_app1/search'
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6d9f98/initial] (1) pass through /my_app1/search
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6cff48/initial] (2) init rewrite engine with
requested uri /my_app1/my_app/
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6cff48/initial] (3) applying pattern '^(.*)$' to
uri '/my_app1/my_app/'
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6cff48/initial] (4) RewriteCond:
input='192.168.8.135' pattern='^192\.5.*$' => not-matched
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6cff48/initial] (3) applying pattern
'/my_app(.*)$' to uri '/my_app1/my_app/'
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6cff48/initial] (4) RewriteCond:
input='192.168.8.135' pattern='^.*$' => matched
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6cff48/initial] (2) rewrite '/my_app1/my_app/' ->
'http://host4/my_app1/'
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6cff48/initial] (2) forcing proxy-throughput with
http://host4/my_app1/
192.168.8.135 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#6cff48/initial] (1) go-ahead with proxy request
proxy:http://host4/my_app1/ [OK]
192.168.3.24 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#7020d8/initial] (2) init rewrite engine with
requested uri /my_app1/
192.168.3.24 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#7020d8/initial] (3) applying pattern '^(.*)$' to
uri '/my_app1/'
192.168.3.24 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#7020d8/initial] (4) RewriteCond:
input='192.168.3.24' pattern='^192\.5.*$' => not-matched
192.168.3.24 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#7020d8/initial] (3) applying pattern
'/my_app(.*)$' to uri '/my_app1/'
192.168.3.24 - - [15/Jun/2008:14:57:58 +0200]
[host4/sid#66e9f0][rid#7020d8/initial] (1) pass through /my_app1/
вообшем не выходит , я явно делаю что-то не так .
Подскажите что мне надо подправить чтобы такая схема заработала ?
две директории с одним и тем-же app мне нужны так как я хочу для
нескольких доменов отключть аутентификацию а для всех остальных осавить
соответственно web.xml там разный .
Reply to: