Путь к прокси-серверу Lighttpd tomcat

Мой 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?

Спасибо

1
задан 12 April 2017 в 13:12
1 ответ

Вы можете использовать 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, т.е. обрабатывать запросы по-разному в зависимости от имени хоста. Если серверная часть не может этого сделать, возможно, вы захотите запустить несколько экземпляров, да.

0
ответ дан 4 December 2019 в 04:59

Теги

Похожие вопросы