Hi, I am using mongrel with nginx and I am facing problem when I try to upload a large file. After googling about this, I came to know that I need to configure nginx.conf file by setting 'client_max_body_size' to a value of desired maximum file size. I did that but still it does not seem to work. Files above 200 KB do not get uploaded. I also get a weird error about sockets (Given below the nginx.conf file) What am I doing wrong? Please help.
My nginx.conf lokos like this:
user postgres ; worker_processes 2; error_log /var/www/webapps/FileSharing/log/error.log notice; pid /var/www/webapps/FileSharing/log/nginx.pid; events { worker_connections 1024; }
http { include mime.types; default_type application/octet-stream; # no sendfile on OSX uncomment #this if your on linux or bsd #sendfile on; tcp_nopush on; keepalive_timeout 65; tcp_nodelay on; upstream mongrel { server 127.0.0.1:4000; server 127.0.0.1:4001; server 127.0.0.1:4002; } gzip on; gzip_min_length 1100; gzip_buffers 4 8k; gzip_types text/plain; server { listen 80; server_name something.com; access_log /var/www/webapps/FileSharing/log/access.log; error_log /var/www/webapps/FileSharing/log/error.log; root /var/www/webapps/FileSharing/public; access_log on; rewrite_log on; #client_max_body_size 1048576k; client_max_body_size 1024M; client_body_buffer_size 512k; client_header_buffer_size 1048576k; location /ui { root /var/www/webapps/FileSharing/public; } location ~ ^/$ { if (-f /index.html){ rewrite (.*) /index.html last; } proxy_pass http://mongrel; } location / { if (!-f $request_filename.html) { proxy_pass http://mongrel; } rewrite (.*) $1.html last; } location ~ .html { root /Users/ez/nginx/public; } location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar| bz2| doc>xls>exe>pdf>ppt>txt>tar>mid>midi>wav>bmp>rtf>js>mov)$ { access_log off; expires 30d; } location / { # needed to forward user's IP address to rails proxy_set_header X-Real-IP $remote_addr; # needed for HTTPS #proxy_set_header X_FORWARDED_PROTO https; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect false; #proxy_max_temp_file_size 1048576k; proxy_max_temp_file_size 1024M; # If the file exists as a static file serve it directly without # running all the other rewite tests on it if (-f $request_filename) { break; } # this is the meat of the rails page caching config # it adds .html to the end of the url and then checks # the filesystem for that file. If it exists, then we # rewite the url to have explicit .html on the end # and then send it on its way to the next config rule. # if there is no file on the fs then it sets all the # necessary headers and proxies to our upstream mongrels if (-f $request_filename.html) { rewrite (.*) $1.html break; } if (!-f $request_filename) { proxy_pass http://mongrel; break; } error_page 500 502 503 504 /500.html; location = /500.html { root /var/www/webapps/FileSharing/public; } } } }
Error:
Thu Nov 20 10:47:37 +0530 2008: Error reading HTTP body: #<RuntimeError: Socket read returned insufficient data: 5672> /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ http_request.rb:107:in `read_socket' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ http_request.rb:77:in `read_body' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ http_request.rb:55:in `initialize' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/ mongrel.rb: 149:in `new' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/ mongrel.rb: 149:in `process_client' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/ mongrel.rb: 285:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/ mongrel.rb: 285:in `initialize' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/ mongrel.rb: 285:in `new' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/ mongrel.rb: 285:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/ mongrel.rb: 268:in `initialize' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/ mongrel.rb: 268:in `new' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/ mongrel.rb: 268:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ configurator.rb:282:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ configurator.rb:281:in `each' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ configurator.rb:281:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails: 128:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/ command.rb:212:in `run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281 /usr/local/bin/mongrel_rails:19:in `load' /usr/local/bin/mongrel_rails:19