忽略或修改NGINX中的请求标头

时间:2018-09-07 09:22:20

标签: nginx

我需要使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

这有效(内容长度:0)

HEAD / HTTP/1.1
Host: MY_HOST
Content-Length: 0
Content-Type: text/html
Connection: close

这也可以(没有内容长度)

HEAD / HTTP/1.1
Host: MY_HOST
Content-Type: text/html
Connection: close

我该如何实现?

1 个答案:

答案 0 :(得分:0)

我发现有一个名为HeadersMore的NGINX模块,允许修改输入标头(以及更多)。

尤其是more_clear_input_headers允许删除输入标题,而more_set_input_headers允许修改输入标题。

就我而言

more_clear_input_headers "Content-Length";

more_set_input_headers "Content-Length: 0";