Rails,Passenger,Nginx,我得到“403 Forbidden”,但为什么?
我试图通过端口5000上的Passenger-Nginx运行我的应用程序
在我的浏览器中,我得到'403 Forbidden'和我的nginx错误日志:
2016/07/12 17:52:12 [error] 28924#0:*“/ var / www / cava / public /”的目录索引被禁止,客户端:YYYY,服务器:cava,请求:“GET / HTTP /1.1“,主机:”XXXX:5000“
在乘客根上,我使用从乘客配置获得的-根,但没有rvm。 如果我使用装有rvm的乘客根,我得到乘客错误,但是我在这里做的是对的吗?
为了参考我的应用程序配置和我的nginx.conf:
我的应用配置
server {
listen 5000;
listen [::]:5000;
server_name cava;
root /var/www/cava/public;
#try_files $uri/index.html $uri @app;
# Add index.php to the list if you are using PHP
#index index.html index.htm index.nginx-debian.html;
#location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404;
#}
}
我的nginx.conf
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /home/tasos/.rvm/rubies/ruby-2.3.0/bin/ruby;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
server {
passenger_enabled on;
listen 443 ssl;
root /usr/share/nginx/html;
index index.html index.htm;
ssl_certificate /etc/nginx/ssl/1_beast.smartupweb.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/smartup1.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL;
#location / {
# try_files $uri $uri/ =404;
#}
}
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
任何帮助赞赏。
错误消息指出:
“/ var / www / cava / public /”的目录索引被禁止
这意味着您的文件夹没有index
文件或要作为索引处理的文件。
我对Passenger并不熟悉,但如果您尝试将index.html
文件与<h1>Hello World</h1>
放在一起,它可能会显示。
下面的问题与这个问题没有直接关系,但为了保持一致性,我将它留在这里。
解决方案1
首先,确定你的nginx
运行的是什么用户
ps ueax|grep 'nginx: worker'|grep -v grep|cut -f1 -d' '
#⇒ www-data
或者它可能nobody
,但在你的情况下,它是根据你的conf
文件的www-data
。
更改/var/www/cava/public
权限:
sudo chown -R www-data /var/www/cava/public
重试,它应该现在工作。
解决方案2
让你的nginx
作为你的用户运行。 在conf
变化的顶端:
- user www-data:
+ user tasos;
后者可能更便于开发。
链接地址: http://www.djcxy.com/p/32411.html上一篇: Rails, Passenger, Nginx, I get "403 Forbidden" but why?