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

  • Posted April 23, 2014


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


Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

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

@delossantos: There’s more information on the Rails one-click app here: <br> <br> <br> <br>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: <br> <br><pre> <br>service unicorn stop <br>service unicorn start <br></pre>

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

tail /home/unicorn/log/unicorn.log <br> <br>/usr/local/rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>’ <br>I, [2014-04-23T13:31:21.805269 #30060] INFO – : worker=0 spawned pid=30060 <br>E, [2014-04-23T13:31:21.809818 #21273] ERROR – : reaped #<Process::Status: pid 30057 exit 1> worker=1 <br>I, [2014-04-23T13:31:21.810037 #21273] INFO – : worker=1 spawning… <br>I, [2014-04-23T13:31:21.815428 #30063] INFO – : worker=1 spawned pid=30063 <br>I, [2014-04-23T13:31:21.819910 #30060] INFO – : Refreshing Gem list <br>I, [2014-04-23T13:31:21.826552 #30063] INFO – : Refreshing Gem list <br>I, [2014-04-23T13:31:22.234690 #21273] INFO – : reaped #<Process::Status: pid 30060 exit 0> worker=0 <br>I, [2014-04-23T13:31:22.234895 #21273] INFO – : reaped #<Process::Status: pid 30063 exit 0> worker=1 <br>I, [2014-04-23T13:31:22.235072 #21273] INFO – : master complete

How about Unicorn’s log: <br> <br>/home/unicorn/log/unicorn.log

/home/unicorn/unicorn.conf <br> <br>listen “” <br>worker_processes 2 <br>user “rails” <br>working_directory “/home/rails” <br>pid “/home/unicorn/pids/” <br>stderr_path “/home/unicorn/log/unicorn.log” <br>stdout_path “/home/unicorn/log/unicorn.log” <br> <br> <br>/var/log/nginx/error.log - is empty

Is there any information in the relevant log files that might shed some light: <br> <br>/var/log/nginx/error.log <br>/home/unicorn/unicorn.conf <br> <br>