Как создать правило прокси lighttpd для перенаправления на разные порты на основе параметра URL?

В настоящее время у меня есть proxy.serverправило, lighttpd.confкоторое перенаправляет все запросы routemsg.plна порт 1530:

$HTTP["url"] =~ "/routemsg.pl" {
    proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => 1528) ) )
}

Как я могу изменить правило, чтобы позволить запрашивающей стороне передавать параметр порта в URL, и этот параметр затем будет использоваться в качестве порта для прокси-запроса?

Например: запрос: http://www.myip.com/routemsg.pl?p=1531будет идти 127.0.0.1на порт 1531.

13.10.2009 08:40:56
1 ОТВЕТ
РЕШЕНИЕ

Вы можете попробовать использовать $HTTP["querystring"]и захватить порт с условным выражением, подобным этому:

$HTTP["url"] =~ "/routemsg.pl" {
    $HTTP["querystring"] =~ "p=([0-9]+)" {
        proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => "%1") ) )
    }
}

Боюсь, у меня нет настроек, на которых я могу подтвердить, что это работает прямо сейчас. :(

2
29.11.2011 06:30:05