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