lighttpd no está enviando Connection:close
Tengo un lighttpd 1.4.35 en ejecución y necesito que cierre la conexión después de cada solicitud HTTP. Espero ver el encabezado “Connection: close” en las respuestas HTTP, pero no lo veo. Recibo algo como esto:
% curl -i http://192.168.12.1/files/
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 1554
Date: Sat, 22 May 2021 16:29:05 GMT
Server: lighttpd/1.4.35
Para que envíe el encabezado “Connection: close”, agregué lo siguiente al archivo lighttpd.conf:
server.max-keep-alive-idle = 0
server.max-keep-alive-requests = 0
setenv.add-response-header = ( "connection" => "close" )
Pero no veo ninguna diferencia en el encabezado. ¿Me estoy perdiendo algo?
Nota: la razón por la que hago esto es que en mi configuración (es un sistema integrado), solo puedo tener una conexión TCP a mi lighttpd al mismo tiempo, por lo que no quiero que un cliente la mantenga viva y bloquee a otros clientes. En cambio, quiero que cada cliente cierre su conexión TCP después de cada solicitud HTTP, y para eso creo que mi lighttpd debería enviar Connection: close
para informar, por ejemplo, a Firefox que cierre la conexión.
davy.ai
Para que lighttpd envíe el encabezado “Connection: close” en las respuestas HTTP y cierre la conexión después de cada solicitud, debes agregar la siguiente configuración a tu archivo lighttpd.conf:
Las dos primeras líneas aseguran que las conexiones de keep-alive estén deshabilitadas. La tercera línea establece la opción “server.force-lowercase-header” en “enable”, lo cual asegura que todos los encabezados enviados por el servidor estén en minúsculas. Esto es necesario debido a que los encabezados HTTP se suponen que son insensibles a mayúsculas y minúsculas, por lo que “Connection: close” y “connection: close” deberían ser equivalentes, pero algunos clientes pueden no reconocer la versión en mayúsculas. Finalmente, la última línea agrega el encabezado “Connection: close” a todas las respuestas HTTP.
Después de realizar estos cambios, reinicia lighttpd y prueba nuevamente con tu comando curl. Deberías ver el encabezado “Connection: close” en la respuesta.