题 在Nginx v.1.3.9 +中启用Chunked Transfer编码


显然Nginx现在支持Chunked,但是当平板电脑设备向Nginx发送Chunked请求时,我收到错误“411 Length Required”。关于如何配置Nginx以支持Chunked的任何建议? 我正在使用v.1.3.9。

我知道一个类似的问题 ,但是在2010年之前,Nginx支持chunked。

我的nginx.conf:

master_process off;
worker_processes  1;
daemon off;

pid        /usr/nginx/logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    ngao_filters_directory /usr/nginx/filters;

    include       mime.types;
    default_type  application/octet-stream;

    # prevent caching by client
    add_header    Cache-Control "no-store, no-cache";

    sendfile        on;
    keepalive_timeout  65; 

  server {
        listen       8081;
        server_name  localhost;
    client_max_body_size 3m;
    chunked_transfer_encoding on;

    scgi_temp_path  /usr/nginx/scgi_temp;
    uwsgi_temp_path /usr/nginx/uwsgi_temp;

        location / {
        proxy_buffering off;
    proxy_pass    http://10.0.2.20:79;

        }  
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } } }

6
2018-05-12 09:35




可能是一个骗局 serverfault.com/questions/159313/... - Danack
不,这是 不 一个骗局。这个问题涉及分块 要求 而另一个涉及分块 回复。 - Michael Hampton♦
啊,根本不是一个骗局。根据这个 ruby-forum.com/topic/4408411 无需配置'根本没有特殊指令。它只是有效。'如果它不能通过平板电脑工作,那么如何使用CURL'curl -v -X POST --header“Transfer-Encoding:chunked”-d @ Test.txt进行测试本地主机:8080“'? - Danack


答案:


(发表回复,因为我无法评论。需要> 50声望)

你应该 读这个

诀窍是设置 proxy_buffering off; 在您的位置块。

^ ---我看你已经尝试过了。

Nginx目前不支持分块POST请求[...]
  我找到的唯一可行解决方案是:
http://wiki.nginx.org/HttpChunkinModule 

^ ---但我认为这是你最好的选择。这意味着你需要编译nginx


3
2018-05-26 09:38