繁体   English   中英

Nginx不提供静态文件(Django + Gunicorn)权限被拒绝

[英]Nginx Not Serving Static Files (Django + Gunicorn) Permission denied

nginx.conf

server {
    listen 80;
    server_name serveraddress.com;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/ec2-user/projectname;
    }

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://unix:/home/ec2-user/projectname/projectname.sock;
    }
}

settings.py

STATIC_URL = '/static/'

STATICFILES_DIR = '/home/ec2-user/projectname/static/'

STATIC_ROOT = '/home/ec2-user/projectname/static/'

如果我使用Django开发服务器和manage.py runserver或gunicorn来运行服务器,则所有静态文件都可以正常运行,但是在端口80上使用nginx时,所有静态文件都无法工作; 这使我相信这是涉及nginx的问题。 是的,我运行了python manage.py collectstatic并安装了django.contrib.staticfiles。 我正在使用RHEL 7(Centos 7)。

Nginx error.log

2016/09/22 20:44:33 [error] 322#0: *371 open() "/home/ec2-user/projectname/static/css/home.css" failed (13: Permission denied), client :##.###.##.##, server: ##.###.###.###, request: "GET /static/css/home.css HTTP/1.1", host: "##.###.###.###", referrer: "http://##.###.###.###/"

您似乎有一个权限被拒绝的问题。 (13: Permission denied)

nginx通常在其自己的nginx用户下运行,并且该用户可能没有访问位置/文件的权限并且不能为它们提供服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM