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