I have a rails app running on an OS X server, using nginx as the web
server,
proxying to a mongrel cluster. File uploads from the user’s browser are
painfully slow when going through nginx, but if I target an individual
mongrel instance in the browser, the file upload is fast. I have the
latest
mac ports version of nginx installed (0.54, I believe).
Any ideas? I tried changing the log format, as suggested in a reply to
someone else’s post, but could not get nginx to start, so I don’t know
if
nginx has to be compiled with a particular flag in order to include the
log
format config directive in nginx.conf.
Any help, suggestions would be greatly appreciated.
Well, I turned off sendfile in config. I also changed a bunch of
parameters
per an email I received from Dave C. (thanks Dave!). No luck.
Just for laughs, I installed and configured Swiftiply with Mongrel and
turned off Nginx. Same issue.
So, then I turned off Swiftiply also and started just one mongrel and
told
it to listen on port 80. It worked great. File uploads were much
faster.
So, if I am having the same issue when proxying from either Swiftiply or
Nginx, but I don’t have the slowness issue when I don’t proxy and just
go
straight to the mongrel instance, this tells me the problem is not with
Nginx, but must be some setting on the OS X server.
Does anyone know what would cause proxying in general to be slow on an
OS X
server? I know its not the network speed from the browser to the
server,
because when I was connecting directly to the mongrel instance without
proxying, file uploads were fine.
Sorry for asking this (probably) non-nginx related question on the list,
but
I started it here, so I figured I would ask one more question.
Ok, I compiled nginx from scratch so I could include the with-debug
option.
What happens is that I click on the submit button and the error.log
shows
nginx cranking through the same messages, which I will show below.
After a
minute or so, it finally starts uploading the file. I have copied the
last
part of the debug messages that show it cranking (and not doing
anything)
after I clicked on the upload button, and then the log shows the first
part
of when it finally starts uploading. Does the fact that it keeps
showing
“accept mutex lock failed” and then finally, when it starts uploading,
it
shows “accept mutex locked”, does this mean anything?
I have a rails app running on an OS X server, using nginx as the web
server, proxying to a mongrel cluster. File uploads from the user’s
browser are painfully slow when going through nginx, but if I target an
individual mongrel instance in the browser, the file upload is fast. I
have the latest mac ports version of nginx installed ( 0.54, I believe).
Any ideas?
[…]
Are you sure that it is “globally” slower?
nginx will first read the entire request body, and then will send the
data to the proxy.
Regards Manlio P.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.