Мой tomcat обслуживает 2 сайта
ROOT -> Main-site
/mobile -> dedicated mobile website
Я настроил lighttpd в качестве прокси-сервера
$HTTP["host"] =~ "www.my-site.at" {
proxy.server = ( "" => (
( "host" => "127.0.0.1",
"port" => 8080
)
))
}
Как я могу указать lighttpd использовать http://127.0.0.1:8080/mobile для m.my -site.at? Или мне нужно настроить второй tomcat и развернуть мобильный сайт под ROOT?
Спасибо
Вы можете использовать url.rewrite-once
для префикса всех запросов на m.my-site.at
с помощью / mobile
:
$HTTP["host"] == "m.my-site.at" {
url.rewrite-once = ( ".*" => "/mobile$0" )
proxy.server = (...)
}
Возможно, вам придется загрузить mod_rewrite
перед mod_proxy
, чтобы это заработало.
Проблема с перезаписью, подобной этой, заключается в том, что теперь серверная часть видит путь, который не соответствует представлению браузеров. Бэкэнд может попытаться выдать пути с префиксом / mobile
или иным образом запутать относительные пути. Некоторые прокси-серверы могут пытаться исправить эти пути в ответах, но lighttpd этого не делает (и вы никогда не поймаете их все).
Реальное решение состоит в том, чтобы заставить серверную часть понимать vhosts, т.е. обрабатывать запросы по-разному в зависимости от имени хоста. Если серверная часть не может этого сделать, возможно, вы захотите запустить несколько экземпляров, да.