Nginx,Passenger,Rails提供静态文件但不运行应用程序

我看过其他类似的问题,但没有一个答案满意,所以这里就是了。 我已经安装了Ruby,Rails,Nginx和Passenger,并试图将其configuration为一起工作。

这是/opt/nginx/conf/nginx.conf的相关部分

 server { listen 80; server_name .myapp.dev; # There is an entry in my local /etc/hosts file for this passenger_enabled on; root /srv/www/myapp.dev/public; access_log /srv/www/myapp.dev/logs/access_log; error_log /srv/www/myapp.dev/logs/error_log warn; } 

有另一个server块,但是这是监听localhost所以我不认为这是造成任何问题。

这里是ls -la /srv/www/myapp.dev/的输出

 drwxr-xr-x 3 josh josh 4096 Dec 4 19:12 . drwxr-xr-x 3 josh josh 4096 Dec 4 18:34 .. drwxr-xr-x 2 josh josh 4096 Dec 4 18:34 logs lrwxrwxrwx 1 josh josh 37 Dec 4 19:12 public -> /home/josh/rails/myapp/public 

我想知道是否有一个权限错误,但我没有看到任何错误,表明它甚至试图运行Ruby。

当nginx重新启动时,这是添加到/opt/nginx/logs/error.log内容

 [ 2013-12-04 20:16:17.9953 2321/b6fea000 agents/Watchdog/Main.cpp:574 ]: Options: { 'analytics_log_user' => 'nobody', 'default_group' => 'nogroup', 'default_python' => 'python', 'default_ruby' => '/home/josh/.rvm/wrappers/ruby-2.0.0-p353/ruby', 'default_user' => 'nobody', 'log_level' => '0', 'max_instances_per_app' => '0', 'max_pool_size' => '6', 'passenger_root' => '/home/josh/.rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.26', 'pool_idle_time' => '300', 'temp_dir' => '/tmp', 'union_station_gateway_address' => 'gateway.unionstationapp.com', 'union_station_gateway_port' => '443', 'user_switching' => 'true', 'web_server_passenger_version' => '4.0.26', 'web_server_pid' => '2320', 'web_server_type' => 'nginx', 'web_server_worker_gid' => '65534', 'web_server_worker_uid' => '65534' } [ 2013-12-04 20:16:18.0527 2324/b6f0b000 agents/HelperAgent/Main.cpp:626 ]: PassengerHelperAgent online, listening at unix:/tmp/passenger.1.0.2320/generation-0/request [ 2013-12-04 20:16:18.1577 2329/b6683000 agents/LoggingAgent/Main.cpp:318 ]: PassengerLoggingAgent online, listening at unix:/tmp/passenger.1.0.2320/generation-0/logging [ 2013-12-04 20:16:18.1644 2321/b6fea000 agents/Watchdog/Main.cpp:761 ]: All Phusion Passenger agents started! 

Nginx提供静态文件,例如,如果我访问myapp.dev/500.html然后我看到默认的Rails 500错误页面。 在日志中提到了Phusion Passenger,所以它似乎正在工作(尽pipe它是error.log ,结果似乎不是负面的)。

我正在试图让这个工作。 任何人有任何想法?

编辑

这里是rake routes的输出

 rake routes Prefix Verb URI Pattern Controller#Action posts GET /posts(.:format) posts#index POST /posts(.:format) posts#create new_post GET /posts/new(.:format) posts#new edit_post GET /posts/:id/edit(.:format) posts#edit post GET /posts/:id(.:format) posts#show PATCH /posts/:id(.:format) posts#update PUT /posts/:id(.:format) posts#update DELETE /posts/:id(.:format) posts#destroy root GET / posts#index 

但是访问myapp.dev/posts返回404

乘客找不到您的应用程序….

更改root /srv/www/myapp.dev/public; 进入root /home/josh/rails/myapp/public;