Jodi wrote: > I too am seeing this - > > any ideas? Well the obvious real solution is to examine the HTTP requests which cause mongrel to bork and find a way to either prevent the malformed requests or fix mongrel to properly understand them.
If you just want to reduce the cpu/io load from the logging, nginx has an error_log directive naming the location of the error log and the level of logging; something like: error_log /var/log/nginx.error_log info; The last token can be [ debug | info | notice | warn | error | crit ], try setting it to error or crit and see if that filters out the "(70014)End of file found:" errors. > On Aug 17, 8:48 am, Stanislav Bozhkov <[EMAIL PROTECTED] > s.net> wrote: >> Hello, >> >> I'm considering to replace our production server Apache with Enginx. >> Behind them there are a dozen of mongrel_rails instances. Some of the >> features that I like very much in Nginx are - fair load balancing for >> proxy upstreams and the posibility to define servers as backup. >> >> This is my current configuration: >> ------ >> http { >> include /etc/nginx/mime.types; >> default_type application/octet-stream; >> >> log_format main '$remote_addr - $remote_user [$time_local] >> $request ' >> '"$status" $body_bytes_sent "$http_referer" ' >> '"$http_user_agent" "$http_x_forwarded_for"'; >> >> access_log /var/log/nginx/access.log main; >> >> sendfile on; >> keepalive_timeout 65; >> >> gzip on; >> gzip_min_length 1100; >> gzip_buffers 4 8k; >> gzip_types text/html text/plain text/xml text/javascript >> text/css >> >> charset utf-8; >> upstream_fair_shm_size64k; >> >> upstream mongrel { >> server 127.0.0.1:8000; >> server 127.0.0.1:8001; >> } >> server { ... >> location / { >> proxy_set_header X-Real-IP $remote_addr; >> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >> proxy_set_header Host $http_host; >> proxy_redirect false; >> >> if (-f $request_filename/index.html) { >> rewrite (.*) $1/index.html break; >> } >> if (-f $request_filename.html) { >> rewrite (.*) $1.html break; >> } >> if (!-f $request_filename) { >> proxy_passhttp://mongrel; >> break; >> } >> } >> ... }} >> >> -------------- >> >> Everything is perfect and as expected, except handling of errors that >> come from mongrel. There are a few referring sites that overload the >> error.log of Nginx with errors like these: >> >> ------- >> proxy: Error reading from remote server returned by /some/path >> referer:http://somesite.com >> >> (70014)End of file found: proxy: error reading status line from remote >> server localhost, referer: >> ------- >> >> For a period of 30min. the error.log reaches ~500MB of those errors. >> >> If I access a mongrel_instance directly with the same problematic >> request I get this from the instance output (not logs): >> ------- >> Sun Aug 17 12:14:43 +0300 2008: HTTP parse error, malformed request >> (127.0.0.1): #<Mongrel::HttpParserError: Invalid HTTP format, parsing >> fails.> >> ------- >> >> It's obvious where the problem is with mongrel, however it overloads the >> whole server with Nginx error logs and CPU load. >> >> I got similar problems when using Apache as proxy_balancer, however the >> rate of logs is far slower, so it doesn't overload the server. >> >> Any help or idea will be appreciated. I'm sure that our application >> deployment isn't so unique, so someone else should have had the same >> problem. >> -- >> Posted viahttp://www.ruby-forum.com/. > > -- -Devin --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Deploying Rails" group. To post to this group, send email to rubyonrails-deployment@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-deployment?hl=en -~----------~----~----~----~------~----~------~--~---