Описание
Внутренний сервер Tomcat, на котором веб-приложения прослушивают 8080:
"http://internal:8080/foo-webservice/"
"http:/ /internal:8080/foo-website/"Внешний сервер Apache передает запросы для поддомена:
"http://foo.domain.com/"Любые запросы корня поддомена будут пересылаться через веб-приложение foo-website на Tomcat.
Любые другие запросы будут проксироваться по соответствующему пути/веб-приложению.
Вариант использования А
Запрос:
"http://foo.domain.com/index.html"Проксировано на:
"http://internal:8080/foo-website/index.html"
Вариант использования Б
Запрос:
"http://foo.domain.com/webservice/listener.html?param1=foo¶m2=bar"Проксировано на:
"http://internal:8080/foo-webservice/listener.html?param1=foo¶m2=bar"
Определение виртуального хоста
Текущее определение виртуального хоста, удовлетворяющее варианту использования B:
<VirtualHost *:80> ServerName foo.domain.com ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ErrorLog /var/log/apache2/foo_error.log LogLevel warn CustomLog /var/log/apache2/foo_access.log combined # RewriteRules # ? # ProxyPass ProxyPreserveHost On ProxyPass / http://internal:8080/ ProxyPassReverse / http://internal:8080/ </VirtualHost>
Попытка 1
# RewriteRules
RewriteEngine On
RewriteRule ^/(.*) http://internal:8080/foo-website/$1 [P]
- Вариант использования A удовлетворен
- Вариант использования B не работает
Попытка 2
# RewriteRules
RewriteEngine On
RewriteRule ^/$ http://internal:8080/foo-website/$1 [P]
- Вариант использования B удовлетворен
- Вариант использования A не полностью удовлетворен
- index.html в foo-website загружается, но ни один из файлов в папках js, img или css.