Я настроил 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