Nginx + Unicorn, 1-click rails app, 504 gateway error

April 23, 2014 3.2k views
Hello. 2 days I'm trying to deploy my r-o-r app. I'll read all the tutorial about it, read all comments - nothing. Installed 1-click R-o-R ubuntu + nginx + unicorn. Then I'm update ruby from 2.0.0 to 2.1.1 with rvm. Install all necessary gems for my app, and follow the instructions there ( I browser - 504 gateway error, when I'm starts unicorn from app folder - everything works. In what direction I must follow to resolve this problem Thank you
7 Answers
Is there any information in the relevant log files that might shed some light:



listen ""
worker_processes 2
user "rails"
working_directory "/home/rails"
pid "/home/unicorn/pids/"
stderr_path "/home/unicorn/log/unicorn.log"
stdout_path "/home/unicorn/log/unicorn.log"

/var/log/nginx/error.log - is empty
How about Unicorn's log:

> tail /home/unicorn/log/unicorn.log

/usr/local/rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `'
I, [2014-04-23T13:31:21.805269 #30060] INFO -- : worker=0 spawned pid=30060
E, [2014-04-23T13:31:21.809818 #21273] ERROR -- : reaped # worker=1
I, [2014-04-23T13:31:21.810037 #21273] INFO -- : worker=1 spawning...
I, [2014-04-23T13:31:21.815428 #30063] INFO -- : worker=1 spawned pid=30063
I, [2014-04-23T13:31:21.819910 #30060] INFO -- : Refreshing Gem list
I, [2014-04-23T13:31:21.826552 #30063] INFO -- : Refreshing Gem list
I, [2014-04-23T13:31:22.234690 #21273] INFO -- : reaped # worker=0
I, [2014-04-23T13:31:22.234895 #21273] INFO -- : reaped # worker=1
I, [2014-04-23T13:31:22.235072 #21273] INFO -- : master complete
Same problem here, although not sure where to upload my files to, I deleted the /home/rails folder and replaced it with my rails app folder and renamed that to rails, is that the correct way of doing it? Also, once it's all done, do I have to add unicorn to my gem file even though the machine is already running it with nginx? When I rails s -e production it starts the webrick server and even then I have to go to port 3000 to see my app. No one is explaining anywhere how to actually run it in the 1 click nginx + unicorn droplet
@delossantos: There's more information on the Rails one-click app here:

Unicorn should be serving the app on localhost:8080, which nginx proxies to port 80. You should start and stop your using the Unicorn init script:

service unicorn stop
service unicorn start
This is admittedly an incomplete response but I've made some headway so I thought that I would share in hopes of someone else having a more elegant solution. After a day of poking around, I have got my app running by * changing the port in nginx.conf to 3000 rather than 8080 * start the rails app as I normally would Voila, I no longer get the Bad Gateway error. Next step is to figure out how to now need to restart the app each time. Alternatively, you could start the rails application with port 8080. Hope that helps. -Brooke
Have another answer? Share your knowledge.