Eu configurei o lighttpd 1.4.48 para proxy meus /api
endpoints recebidos na porta 80 para um servidor de API local em execução na porta 8080, conforme mostrado abaixo:
# Forward all /api requests to the apiserver
$HTTP["url"] =~ "^/api" {
proxy.server = (
"/api" => (
(
"host" => "127.0.0.1",
"port" => "8080"
)
)
)
}
Existe um aplicativo da web que pesquisa o mesmo ponto de extremidade da API ( /api/status/dashboard
) a cada 5 segundos. A questão que estou vendo é que, pela primeira vez, leva cerca de 600ms para retornar ao navegador. A segunda vez 1.5s. Então, em 2.7s, depois em 3.5s, depois em 4.7s, depois em 6.1s, então de volta para cerca de 600ms. Este ciclo se repete repetidamente. Essencialmente, cada solicitação leva um extra de ~ 1,1s até ultrapassar 5 segundos e, em seguida, é redefinido.
A partir do registro no meu servidor de API, posso ver que a solicitação não é recebida imediatamente. Por alguma razão, não está sendo imediatamente encaminhado pelo lighttpd.
Além disso, se eu enviar a solicitação do Postman diretamente para a porta 8080, não haverá atraso, mas o envio pela porta 80 terá o atraso descrito acima.
Encontrei algumas informações sobre os atrasos do proxy lighttpd que sugeriam o uso da seguinte configuração:
server.stream-request-body = 1
server.stream-response-body = 1
Com os valores acima definidos como 0 (ou não inclua essas linhas), cada solicitação é atrasada de forma consistente em 5 segundos. Com eles definidos para 1 ou 2, recebo os mesmos atrasos de aumento / ciclismo descritos acima.
Isso parece uma configuração incorreta da minha parte ou possivelmente um bug?
Alguém mais tem uma configuração de proxy / encaminhamento que funcione corretamente e possa compartilhar sua configuração?
Qualquer ajuda seria muito apreciada!
Obrigado!
p.s. Também perguntado no site lighttpd: