我需要使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
我该如何实现?
答案 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";