See my comment here.
You need to explicitly specify, where actual Ruby code of a Rails application is located, using passenger_app_root
directive, described in Passenger's documentaion.
Without this directive, Passenger will thinck, that actual Ruby code is located in path, specified with root nginx-directive.
Example of a correct configuration file '/etc/nginx/sites-available/app_name':
server {
listen 80;
server_name 188.225.35.216;
passenger_enabled on;
rails_env production;
root /path/to/your/app/public/folder;
passenger_app_root /path/to/your/app/code; # <<< Point Passenger to application code
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
In my case, Passenger was't serving my Rails app, that was deployed with Capistrano.
I had have to specify a value for passenger_app_root
like following /var/www/my_app/current
.
This will point Passenger exactly, where application code is presented.
touch app-directory/current/tmp/restart.txt
? – Lamprophyrepassenger-config validate-install
andpassenger-status
say? – Lamprophyrepassenger-status <instance>
I get Phusion Passenger is currently not serving any applications. – Benoitepassenger start --app-type node --startup-file myapp.js
I can see my that my app is being served, butpassenger-status
still says that it's not serving my application. – Benoite