У меня есть веб - сайт www.somewebsite.comдомена , размещенного на Lighttpd 1,4 Сервер с , server.port = 8080который находится на устройстве (A) с локальным IP , 192.168.1.26и я хочу , чтобы использовать обратный прокси - сервер, чтобы получить доступ к другому серверу , который работает на другом устройстве (B) на 192.168.1.30:80/myappв чтобы быть доступным как

somewebsite.com/myapp

В конфигурации сервера устройства (A) я включил mod_proxy и попытался добавить

$HTTP["url"] =~ "^.*myapp" {
    proxy.server  = ( "" => 
        (( "(www.)?somewebsite.com" => "192.168.1.30", "port" => 80 ))
    )
}

но я получаю страницу с внутренней ошибкой сервера, когда пытаюсь получить доступ somewebsite.com/myapp

Я тоже пробовал

$HTTP["url"] =~ "(^/myapp/)" {   
  proxy.server  = ( "" => ("" => ( "(www.)?somewebsite.com" => "127.0.0.1", "port" => 8080 ))) 
}

$SERVER["socket"] == ":81" {   
  url.rewrite-once = ( "^/myapp/(.*)$" => "/$1" )   
  proxy.server  = ( "" => ( "" => ( "(www.)?somewebsite.com" => "192.168.1.30", "port" => 80 ))) 
}

но результат еще хуже и сервер полностью вылетает

answer

proxy.server не принимайте host в качестве аргумента, а host - это ключевое слово, а не место для размещения здесь вашего хоста.

Попробуй это:

$HTTP["host"] =~ "(www.)?somewebsite.com" {
 $HTTP["url"] =~ "^/myapp/" {
  url.rewrite-once = ("^/myapp/(.*)" => "/newapp/$1") # If you need to rewrite context.
  proxy.server  =  ( "" => ( "" => ("host" => "192.168.1.30", "port" => 80 )))
  }
}
$HTTP["host"] =~ "(www.)?somewebsite.com" {
  $HTTP["url"] =~ "^/myapp/" {
    url.rewrite-once = ("^/myapp/(.*)" => "/newapp/$1")
  }
  $HTTP["url"] =~ "^/newapp/" {
    proxy.server  =  ( "" => ( "" => ("host" => "192.168.1.30", "port" => 80 )))
  }
}

Кроме того , вы можете использовать proxy.headerс "map-urlpath"с Lighttpd 1.4.46 и позже. См. Https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModProxy