Я настроил lighttpd 1.4.48 для передачи моих конечных точек /api полученных через порт 80, на локальный сервер API, работающий через порт 8080, как показано ниже:

# Forward all /api requests to the apiserver
$HTTP["url"] =~ "^/api" {
  proxy.server = (
    "/api" => (
      (
        "host" => "127.0.0.1",
        "port" => "8080" 
      )
    )
  )
}

Существует веб-приложение, которое опрашивает одну и ту же конечную точку API (/api/status/dashboard) каждые 5 секунд. Проблема, которую я вижу, заключается в том, что в первый раз требуется около 600 мс, чтобы вернуться в браузер. Второй раз 1,5 с. Затем 2,7 с, затем 3,5 с, затем 4,7 с, затем 6,1 с, затем обратно примерно до 600 мс. Этот цикл повторяется снова и снова. По сути, каждый запрос занимает дополнительные ~ 1,1 с, пока не пройдет более 5 секунд, а затем сбрасывается.

Из журнала на моем сервере API видно, что запрос не был получен немедленно. По какой-то причине он не сразу пересылается lighttpd.

Кроме того, если я отправляю запрос от Postman напрямую на порт 8080, задержка не возникает, но отправка через порт 80 имеет задержку, описанную выше.

Я нашел некоторую информацию о задержках прокси lighttpd, которая предложила использовать следующую конфигурацию:

server.stream-request-body = 1
server.stream-response-body = 1

Если указанные выше значения равны 0 (или не включают эти строки), то каждый запрос последовательно задерживается на 5 секунд. Когда они установлены в 1 или 2, я получаю такие же задержки увеличения / циклирования, как описано выше.

Это похоже на неправильную конфигурацию с моей стороны или, возможно, ошибка?

У кого-нибудь еще есть настройки прокси / пересылки, которые работают должным образом и могут поделиться своими настройками?

Любая помощь будет наиболее ценится!

Спасибо!

п.с. Также спросили на сайте lighttpd:

https://redmine.lighttpd.net/issues/2907?issue_count=17&issue_position=1&next_issue_id=2905

0