【问题标题】:Ignore or modify request headers in NGINX忽略或修改 NGINX 中的请求标头
【发布时间】:2019-02-12 14:55:33
【问题描述】:

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

我怎样才能做到这一点?

【问题讨论】:

  • proxy_hide_header 隐藏标题对你有用吗?
  • NGINX 应该自己处理请求(即不代理它)。据我了解,该指令适用于代理请求。但可能完全错了。

标签: nginx


【解决方案1】:

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

特别是 more_clear_input_headers 允许删除输入标头,而 more_set_input_headers 允许修改输入标头。

就我而言

more_clear_input_headers "Content-Length";

more_set_input_headers "Content-Length: 0";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    相关资源
    最近更新 更多