在良心云上部署 nginx + uwsgi + django 时简单的首页可以正常访问,但 django 自带的 admin 管理后台 404,是哪里配置出错了吗?

2018-03-13 22:33:12 +08:00
 zhijiansha

我在nginx中的配置如下:

server {
    listen 80 default_server;
    listen 118.24.***.*** default_server;
    location / {
        try_files $uri $uri/ =404;
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000;
    }
    location /static {
        alias /root/test1/test2/static/;
    }

我的uwsgi.ini的配置如下:

[uwsgi]
socket=0.0.0.0:8000
#http=:8000
chdir=/root/test1
wsgi-file=test1/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uswgi.log
3747 次点击
所在节点    Python
14 条回复
jimmyye
2018-03-13 22:51:48 +08:00
把 try_files 那行删掉试试
bulabean
2018-03-13 23:52:26 +08:00
良心云是什么云平台?
matsuz
2018-03-13 23:58:14 +08:00
@bulabean 腾讯云,良心云
zhijiansha
2018-03-14 12:39:18 +08:00
@jimmyye 谢谢,的确可以了,不过有个疑问,我把静态文件放在上面所写的目录下,访问 admin 时,js 和 css 会抱 403 错误,我只有在把文件放在 var/www/static 目录下后,更改 nginx 配置,才能成功访问
Hopetree
2018-03-14 16:39:14 +08:00
@zhijiansha 你再服务器上面有收集静态文件吗?使用 collectstaic 命令?
zhijiansha
2018-03-14 18:27:07 +08:00
@Hopetree 有收集静态文件,/root/test1/test2/static/这个项目目录下新建的文件,然后静态文件都收集到这里了,然后配置按照上面的配置,css 和 js 请求会出现 403,然后我把收集到的静态文件复制了一份到 /var/www/static/目录下,nginx 配置中修改为
```
location /static {
#alias /root/test1/test2/static/;
alias /var/www/static/;
}
```
这样才正常了
jimmyye
2018-03-14 22:18:36 +08:00
应该是权限的问题,要确保 nginx 有权限访问那个目录的文件
Hopetree
2018-03-15 09:36:57 +08:00
@zhijiansha 这个 alias /root/test1/test2/static/改成 alias /root/test1/test2 试试
zhijiansha
2018-03-15 10:03:53 +08:00
@jimmyye test2 已经设置了 777 权限了,不知道是不是你说的 nginx 的权限?
zhijiansha
2018-03-15 10:04:16 +08:00
@Hopetree 尝试了一下,不行,还是 403
jimmyye
2018-03-15 10:34:37 +08:00
再看看 static 和 static 里面文件的权限
zhijiansha
2018-03-15 11:17:02 +08:00
@jimmyye 额,把里面的子文件权限都调到 777 可以了,有个疑问 var/www/下的为何权限不够也可以??
jimmyye
2018-03-15 12:37:47 +08:00
一般确保执行 collectstatic 操作的用户和 nginx 的运行用户在一个组里,然后设置该组有读取 static 的权限。权限问题很麻烦,我也记不住,只能出问题的时候去看看相关用户和目录文件的设置。
zhijiansha
2018-03-15 17:56:11 +08:00
@jimmyye 谢谢,受教了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/437768

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX