Hello world upload_module adds 2 sec delay to file uploads

Valery Kholodkov valery+nginxen at grid.net.ru
Mon Jun 22 23:50:07 MSD 2009


What are the other debug log messages? I'm not sure I can give relevant 
answer with so few information.

jack wrote:
> Uploading a small "hello world" file using upload_module takes about 2 seconds, while not using upload_module and passing it directly to my fastcgi is almost instantaneous.  To debug the problem I modified the upload_module code and added a debug statement at the end of function ngx_http_upload_handler, and another at the beginning of the function ngx_http_read_upload_client_request_body_handler.
> 
> Using nginx_upload_module-2.0.9
> 
> 2009/06/22 12:02:56  16737#0: *1 returning ok in ngx_http_upload_handler, client: 127.0.0.1, server: myhost.com, request: "POST /upload/this HTTP/1.1", host: "localhost:81"
> 2009/06/22 12:02:58  16737#0: *1 67964 begin ngx_http_read_upload_client_request_body_handler , client: 127.0.0.1, server: myhost.com, request: "POST /upload/this HTTP/1.1", host: "localhost:81"
> 
> Notice the 2 second delay between those calls.  Are there other settings I could tweak to get that 2 second delay down?
> 
> 
> Here is my nginx.conf
> 
> 
> -----------------
> user  www www;
> worker_processes  5;
> worker_rlimit_nofile 8192;
> error_log  logs/error.log  info;
> pid        logs/nginx.pid;
> events {
>     worker_connections  2000;
> }
> http {
>     include       mime.types; # Default for now
>     default_type  application/octet-stream;
>     access_log  logs/access.log;
>     sendfile        on;
>     tcp_nopush     on;
>     keepalive_timeout  65;
>     upstream upload_workers {
>       server localhost:2121;
>       server localhost:2122;
>       server localhost:2123;
>       server localhost:2124;
>     }
>     server {
>         listen       81;
>         location /upload {
>              # This needs to remain large
>             client_max_body_size 1000M;
>             upload_pass   @upload_taker;
>             upload_store /tmp;
>             upload_store_access user:rw group:rw all:rw;
>             upload_set_form_field $upload_field_name.name "$upload_file_name";
>             upload_set_form_field $upload_field_name.content_type "$upload_content_type";
>             upload_set_form_field $upload_field_name.path "$upload_tmp_path";
>             # Integrity checking.  Optional.
> #            upload_aggregate_form_field "$upload_field_name.md5" "$upload_file_md5";
> #            upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size";
>             upload_cleanup 400 404 499 500-505;
>         }
>         # Pass altered request body to a backend
>         location @upload_taker {
>           include fastcgi_params;
>           fastcgi_pass upload_workers;
>         }
>         location / {
>           index index.html;
>         }
>         error_page  404              /404.html;
>     }
> }
> 
> ----------
> 
> To post to nginx, I'm using
> echo "Hello world" > /tmp/hworld
> curl -F 'file1=@/tmp/hworld' 'localhost:81/upload/this'
> 
> Thanks for any help!


-- 
Best regards,
Valery Kholodkov





More information about the nginx mailing list