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/'
如果我使用带有manage.py runserver或gunicorn的Django开发服务器运行服务器,所有静态文件都可以正常工作,但是在端口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://##.###.###.###/"
答案 0 :(得分:0)
您似乎有权限被拒绝的问题。 (13: Permission denied)
nginx通常在其自己的nginx
用户下运行,并且此用户可能没有访问位置/文件的权限,也无法为其提供服务。
答案 1 :(得分:-1)
我刚刚通过禁用SELinux修复了它,几天前使用nginx引起了另一个问题。