[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: