URL-адрес прокси-сервера на другой порт через Lighttpd

Кажется, я не могу проксировать URL-адрес на другой порт с тем же именем хоста. У меня есть пользовательский интерфейс (Angular 5), работающий на somehost: 8080, а остальная часть веб-приложения на somehost.com (порт 80). Я хочу проксировать http://somehost.com/xxx на http://somehost.com: 8080 . Не уверен, что моя конфигурация правильная или в нужном месте.

$HTTP["host"] =~ "somehost\.com$" {

        $HTTP["url"] =~ "(^/xxx/)" {
          proxy.server  = ( "" => ("" => ( "host" => "somehost.com", "port" => 8080 )))
        }

        url.rewrite-if-not-file = (
                "^/(.*)" => "/index.php/$1",
        )


}
3
задан 18 April 2018 в 00:56
1 ответ

Судя по вашему вопросу, похоже, что вы хотите обслуживать http://somehost.com/xxx/file из ] http://somehost.com:8080/file . В этом случае ваша конфигурация неверна, потому что вместо этого он пытается обслуживать http://somehost.com:8080/xxx/file . Вам необходимо добавить url.rewrite-once :

  url.rewrite-once = ( "^/xxx/(.*)$" => "/$1" )
  proxy.server  = ( "" => ( # proxy all file extensions / prefixes
    "" => # optional label to identify requests in logs
      ( "host" => "somehost",
        "port" => 8080
      )
    )
  )

В зависимости от вашей версии lighttpd вы можете или не сможете вызвать url.rewrite-once из $ HTTP ["url" ] соответствие.

Также убедитесь, что вы загрузили модули mod_proxy и mod_rewrite с помощью:

server.modules += ( "mod_proxy" )
server.modules += ("mod_rewrite")

Дополнительная информация о proxy.server: https://redmine.lighttpd.net/projects/1/wiki/Docs_ModProxy Дополнительная информация о url.rewrite-once: https://redmine.lighttpd.net/projects/1/wiki/docs_modrewrite#urlrewrite-repeat

3
ответ дан 3 December 2019 в 06:26

Теги

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