I have tried many suggestions online but nothing has worked. I have unicorn and nginx working to deploy a ruby on rails app on a CentOS 6.5 server. It has worked before but now I'm getting the bad gateway error when I try to pull up the site. The two main files I'm working with are the unicorn.rb config file and nginx's default.conf file. These files' locations are: /home/myuser/myApp/config/unicorn.rb and /etc/nginx/conf.d/default.conf. Here is what they contain:
unicorn.rb
Set the working application directory # working_directory "/path/to/your/app" working_directory "/home/myuser/myApp" # Unicorn PID file location # pid "/path/to/pids/unicorn.pid" pid "/home/myuser/myApp/pids/unicorn.pid" # Path to logs # stderr_path "/path/to/log/unicorn.log" # stdout_path "/path/to/log/unicorn.log" stderr_path "/home/myuser/myApp/log/unicorn.log" stdout_path "/home/myuser/myApp/log/unicorn.log" # Unicorn socket # listen "/tmp/unicorn.[app name].sock" listen "/home/myuser/myApp/tmp/unicorn.myApp.sock" # Number of processes # worker_processes 4 worker_processes 2 # Time-out timeout 30
default.conf
upstream app { # Path to Unicorn SOCK file, as defined previously server unix:/home/myuser/myApp/tmp/unicorn.myApp.sock fail_timeout=0; } server { listen 80; server_name localhost; # Application root, as defined previously root /root/myApp/public; try_files $uri/index.html $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app; } error_page 500 502 503 504 /500.html; client_max_body_size 4G; keepalive_timeout 10; }
I am trying to run this stuff from myuser so I dont want to move the unicorn file or myApp. To set this up I followed https://www.digitalocean.com/community/articles/how-to-deploy-rails-apps-using-unicorn-and-nginx-on-centos-6-5 but changed the directories for some of the steps. I know the tutorial works when I dont change the directories but I really need it to run in my user home. Any help is appreciated.
It looks like the problem is in nginx. When looking at the nginx error.log, I get this :
2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/tasks/index.html" failed (13: Permission d$ 2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/tasks" failed (13: Permission denied), cli$ 2014/03/05 14:53:04 [crit] 5756#0: *1 connect() to unix:/home/myuser/myApp/tmp/unicorn.myApp.sock failed (13: Per$ 2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/500.html/index.html" failed (13: Permissio$ 2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/500.html" failed (13: Permission denied), $ 2014/03/05 14:53:04 [crit] 5756#0: *1 connect() to unix:/home/myuser/myApp/tmp/unicorn.myApp.sock failed (13: Per$ 2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/favicon.ico/index.html" failed (13: Permis$ 2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/favicon.ico" failed (13: Permission denied$ 2014/03/05 14:53:04 [crit] 5756#0: *1 connect() to unix:/home/myuser/myApp/tmp/unicorn.myApp.sock failed (13: Per$ 2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/500.html/index.html" failed (13: Permissio$ 2014/03/05 14:53:04 [crit] 5756#0: *1 stat() "/home/myuser/myApp/public/500.html" failed (13: Permission denied), $ 2014/03/05 14:53:04 [crit] 5756#0: *1 connect() to unix:/home/myuser/myApp/tmp/unicorn.myApp.sock failed (13: Per$
One of the solutions I've found online is to disable SELinux. I tried and it did not help. These files are all 777 on permissions so this shouldn't be happening. Any ideas?