我需要让 NGINX 忽略/修改请求标头。
问题是某些 IoT 设备正在发送带有错误 Content-Length 标头的 HEAD 请求。这使得 NGINX 等待更多内容然后超时。
删除 Content-Length 标头或将其设置为 0 都可以解决问题。
例子
这失败了
HEAD / HTTP/1.1
Host: MY_HOST
Content-Length: 59
Content-Type: text/html
Connection: close
Run Code Online (Sandbox Code Playgroud)
这有效(内容长度:0)
HEAD / HTTP/1.1
Host: MY_HOST
Content-Length: 0
Content-Type: text/html
Connection: close
Run Code Online (Sandbox Code Playgroud)
这也有效(没有内容长度)
HEAD / HTTP/1.1
Host: MY_HOST
Content-Type: text/html
Connection: close
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它发生?
我发现有一个名为HeadersMore的 NGINX 模块允许修改输入标头(以及更多内容)。
特别是 more_clear_input_headers 允许删除输入标头, more_set_input_headers 允许修改输入标头。
就我而言
more_clear_input_headers "Content-Length";
Run Code Online (Sandbox Code Playgroud)
或者
more_set_input_headers "Content-Length: 0";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |