2016-09-23 88 views
0

nginx.confNginx的不是靜態文件服務(Django的+ Gunicorn)權限被拒絕

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命令Django開發服務器的服務器或者使用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://##.###.###.###/" 

回答

-1

我剛剛通過禁用SELinux來解決這個問題,前幾天使用nginx導致了另一個問題。

0

你有一個權限被拒絕的問題,它似乎。 (13: Permission denied)

nginx經常在它自己的nginx用戶下運行,並且此用戶可能沒有權限訪問位置/文件並且無法提供服務。