lighttpd 没有发送 Connection:close

lighttpd not sending Connection:close

我有一个 lighttpd 1.4.35 运行,我需要它在每次 HTTP 请求后关闭连接。我期待在 HTTP 响应中看到“Connection:close”header,但我没有。我收到这样的信息:

% 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

为了让它发送“连接:关闭”header,我将以下内容添加到 lighttpd.conf:

server.max-keep-alive-idle = 0
server.max-keep-alive-requests = 0
setenv.add-response-header = ( "connection" => "close" )

但我没有看到 header 有任何区别。我错过了什么吗?

注意:我这样做的原因是在我的设置中(它是一个嵌入式系统),我的 lighttpd 一次只能有一个 TCP 连接,所以我不希望客户端让它保持活动状态并阻止其他客户端。相反,我希望每个客户端在每次 HTTP 请求后关闭其 TCP 连接,为此我相信我的 lighttpd 应该发送 Connection:close 来通知例如Firefox 关闭连接。

这与 this and this 个问题有关。

您尝试过 lighttpd documentation 吗?

I can have only one TCP connection my lighttpd at a time, so I don't want a client to keep it alive

server.max-keep-alive-requests

server.max-connections

server.max-connections = 1
server.max-keep-alive-requests = 0

如果您允许多于个连接,那么您可以减少保持活动状态而不是禁用保持活动状态时间。

server.max-keep-alive-idle

server.max-keep-alive-idle = 1 将允许保持活动状态,但如果空闲,将在 1-2 秒内关闭空闲连接。

顺便说一句,lighttpd 1.4.35 已经过时了。 lighttpd 1.4.35 于 2014 年 3 月发布。最新的 lighttpd 版本是 lighttpd 1.4.63。请考虑升级。

我尝试在我的笔记本电脑上使用较新的 lighttpd (1.4.55),并且我的 server.max-keep-alive-requests = 0 初始配置在那里工作。

由于某种原因它似乎不适用于 1.4.35,所以我的解决方案是更新它。