[英]Nginx, Passenger, Ruby on Rails 4.1.6 Ubuntu 14 - 403 forbidden error
[英]Forbidden - Ruby 2.0.0 Rails 4.0.0 Nginx Passenger on Ubuntu 12.04
这个问题被问了太多遍了。 我花了数小时来浏览关于stackoverflow的所有帖子,到目前为止还算不上运气。 尝试访问我的rails应用程序时始终显示403 Forbidden。 使用一个空的新生成的应用程序进行测试。
/ var / www中的所有文件均由www-data拥有。 我在代码的完整路径上将权限设置为755。 当我将index.html添加到公共目录时,它会显示出来,但是我无法运行该应用程序。
这是启用站点中的配置
server {
listen 80;
root /var/www/default/public;
server_name s.dev
passenger_enabled on;
rails_env development;
}
nginx.conf
user www-data;
worker_processes 2;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_proxied any;
gzip_vary off;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/rss+xml application/atom+xml text/javascript application/javascript application/json text/mathml;
gzip_min_length 1000;
gzip_disable "MSIE [1-6]\.";
server_names_hash_bucket_size 64;
types_hash_max_size 2048;
types_hash_bucket_size 64;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
passenger.conf
passenger_root /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.17;
passenger_ruby /usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby;
passenger_max_pool_size 6;
passenger_spawn_method smart-lv2;
passenger_use_global_queue on;
passenger_buffer_response on;
passenger_min_instances 1;
passenger_max_instances_per_app 0;
passenger_pool_idle_time 300;
passenger_max_requests 0;
关于我可以尝试的任何建议将不胜感激!
谢谢
更多信息:
passenger-config --root
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.17
哪个红宝石
/usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby
这是错误
2013/09/11 16:03:00 [错误] 30400#0:* 3目录索引“ / var / www / default / public /”被禁止,客户端:145.33.44.33,服务器:s.dev,请求: “ GET / HTTP / 1.1”,主机:“ s.dev”
乘客内存统计
Version: 4.0.17
Date : 2013-09-11 16:24:16 -0400
------- Apache processes --------
### Processes: 0
### Total private dirty RSS: 0.00 MB
---------- Nginx processes ----------
PID PPID VMSize Private Name
-------------------------------------
32226 1 38.8 MB 0.2 MB nginx: master process /opt/nginx-1.5.4/sbin/nginx
32227 32226 39.2 MB 0.6 MB nginx: worker process
32228 32226 39.2 MB 0.5 MB nginx: worker process
### Processes: 3
### Total private dirty RSS: 1.25 MB
----- Passenger processes -----
PID VMSize Private Name
-------------------------------
32200 216.2 MB 0.3 MB PassengerWatchdog
32205 489.6 MB 0.3 MB PassengerHelperAgent
32220 223.6 MB 0.8 MB PassengerLoggingAgent
### Processes: 3
### Total private dirty RSS: 1.40 MB
我也可以在运行“乘客启动”时成功运行应用
因此它开始工作。 奇怪的是,我无法真正说出是什么导致它开始工作。 在修正过程中,我犯了一些错误。 一种是将基本身份验证错误地添加到站点配置中:
server {
listen 80;
root /var/www/default/public;
server_name s.dev;
location / {
auth_basic "Restricted";
auth_basic_user_file /var/www/default/.htpasswd;
passenger_enabled on; <------ did not remember to add this
}
passenger_enabled on;
rails_env development;
}
另一件事是将一个用户添加到nginx.conf中,并使该用户成为/ var / www / default的所有者-尽管我很确定这是我无法解决的事情之一
谢谢大家的帮助
也许是因为passenger_spawn_method smart-lv2
吗? 根据http://www.modrails.com/documentation/Users%20guide%20Nginx.html#_passenger_max_instances_per_app_lt_integer_gt的说明 :
自Phusion Passenger 4.0起,保守的生成已重命名为Direct,smart-lv2重命名为smart。 旧的智能生成已被删除,以支持新版本。
并作为:
默认值为智能。
尝试将其删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.