Forum: Ruby on Rails Nginx + Phusion Passenger 3 problem with "504 Gateway time-out"

Posted by "Sebastião Giacheto F. Júnior" <sebastorama@gmail. (Guest)
on 2012-09-18 05:24
(Received via mailing list)
Hi,

I have a Rails 3.2 app. There is a specific request that takes a long
time to execute. The context is, the user uploads a pdf, and then we
have some processing through carrierwave + rmagick that generate a
jpeg from the first page of the document. Everything works in dev mode
using both webrick and thin. The problem happens on the prod
environment with Nginx + Passenger.

The request takes a lot of time and the browser is redirected to a
"504 Gateway time-out". At this point, the file was already sent, but
it's being processed (the pdf manipulation task really takes time). I
found several threads with solutions like this:
https://groups.google.com/forum/?fromgroups=#!topi...
that basically consists in patching the hardcoded timeout values on
the passenger source before compiling the module.

There is actually no error on the request and the manipulation of the
files itself. After a while, the work on the server is finished
without any bad behaviour. The processed jpeg is served by the app as
nothing bad has actually hapened. This evidence summed up with the
fact that everything works in dev mode, points to a nginx+passenger
problem.

Anyone has a more clearer solution to the passenger+nginx
configuration scheme?
Posted by Benjamin Iandavid Rodriguez (Guest)
on 2012-09-18 06:22
(Received via mailing list)
For actions that take a lot of time I suggest to send it to the 
background
if possible, you can use:
  - resque https://github.com/defunkt/resque
  - sideqik http://mperham.github.com/sidekiq/

Regards

2012/9/17 Sebastio Giacheto F. Jnior <sebastorama@gmail.com>
Posted by "Sebastião Giacheto F. Júnior" <sebastorama@gmail. (Guest)
on 2012-09-18 06:59
(Received via mailing list)
Thanks for your reply, but there's actually no need for speed increase
or scalability whatsoever so there's no need to setup a background job
queue system. If I cannot solve this problem, I'll probably try thin
instead of passenger. I'm actually curious about the solution of this
issue :D

On Sep 18, 1:22am, Benjamin Iandavid Rodriguez <ian....@gmail.com>
Posted by Benjamin Iandavid Rodriguez (Guest)
on 2012-09-18 07:24
(Received via mailing list)
Many times I find best to use Nginx + unicorn as the app server, you 
might
give that a try.

2012/9/17 Sebastio Giacheto F. Jnior <sebastorama@gmail.com>
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.