django - nginx遷移到阿里雲後靜態檔案403錯誤無法存取的原因有哪些?
伊谢尔伦
伊谢尔伦 2017-05-16 17:13:48
0
2
571

p.s: django專案在本地能成功運行,但是遷移到阿里雲後就不行了。

運行環境:ubuntu14.04+uwsgi+nginx+django1.9。

這是訪問django的admin頁面的截圖,所有的css檔案都無法加載,詳細報錯資訊貼在了下面。

項目在阿里雲的位置是/root/mysite。

#/etc/nginx/site-enabled/mysite.conf如下

server {
    listen 8080;
    server_name www.domainname.com;

    location /static/ {
        alias /root/mysite/blog/static/;
    }

    location / {
        uwsgi_pass 127.0.0.1:8001;
        include     /etc/nginx/uwsgi_params;
    }
}

問題補充:靜態檔案都已經收集到了我alias指定的目錄

$ python manage.py collectstatic
0 static files copied to '/root/mysite/blog/static', 69 unmodified.

# 文件权限没有问题
$ ll /root/mysite/blog/static
total 16
drwxrwxr-x 4 root root 4096 Oct  5 09:13 ./
drwxrwxr-x 6 root root 4096 Oct  5 15:28 ../
drwxrwxr-x 6 root root 4096 Oct  5 09:13 admin/
drwxrwxr-x 5 root root 4096 Oct  5 09:13 blog/
# mysite/settings.py中已经指定了下面两项,**collectstatic**也收集成功,所以我觉得配置可能不存在问题
# 而且项目在本地能够运行,就是迁移到阿里云后无法运行了,所以是不是可能是阿里云的权限问题。
STATIC_URL="/static/"
STATIC_ROOT = os.path.join(BASE_DIR, 'blog/static')

這是我在本地實驗時localhost:8080/admin的正確頁面

#
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(2)
刘奇
alias /root/mysite/blog/static/;

/root 目錄預設是只有 root 能存取的。其下的文件再怎麼開放,nginx 進不去也沒用。

網站文件一般放在 /srv/http 下。

另外,如果你不想讓你的伺服器被別人用來當肉雞、攻擊別人、發送垃圾郵件、作為免費代理的話,就不要用 root 權限跑 Web 程式。

阿神

我不太懂,我只是用阿里雲ECS伺服器搭建一下部落格

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板