lighttpd mod_proxy задерживает последующие запросы до 5 с

344
MindJuice

Я настроил 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, я получаю такие же задержки увеличения / циклирования, как описано выше.

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

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

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

Спасибо!

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

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

0

0 ответов на вопрос