ram*_*mpr 6 nginx node.js chunked
我有以下设置 - node-http-proxy 充当反向代理,根据需要将所有请求转发到 nginx/socket.io
我的问题是当我从浏览器发送 HTTP DELETE 请求时,node-http-proxy 添加一个标头“传输编码分块”,因为来自浏览器的请求没有内容长度。来自浏览器的请求没有内容长度,因为它没有正文。Nginx 不喜欢 Transfer Encoding Chunked Header 并抛出 411 要求 Content-Length。
当我将虚拟数据作为 DELETE 请求的一部分发送时,问题就解决了,因此存在内容长度并且 node-http-proxy 不添加传输编码分块标头并且 nginx 很高兴。
我想了解 node-http-proxy 是否没有按预期工作,因为它在内容长度丢失时添加了传输编码分块标头,因为没有内容正文。
编辑 - 更多信息:
当我尝试删除 node-http-proxy 并直接将请求发送到 nginx 时,nginx 对此很满意。请注意,浏览器没有设置内容长度(因为正文是空的)和传输编码分块
小智 3
来自 RFC 2616 - “请求中消息正文的存在是通过在请求的消息标头中包含内容长度或传输编码标头字段来表示的。”。所以我认为 nginx 期望 Content-Length 是正确的,因为它认为它有一个消息体。
您可以尝试将 Content-Length 显式设置为 0。
也可以尝试:http://wiki.nginx.org/HttpChunkinModule
归档时间: |
|
查看次数: |
5254 次 |
最近记录: |