我在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
1
jimmyye 2018-03-13 22:51:48 +08:00 1
把 try_files 那行删掉试试
|
2
bulabean 2018-03-13 23:52:26 +08:00
良心云是什么云平台?
|
4
zhijiansha OP @jimmyye 谢谢,的确可以了,不过有个疑问,我把静态文件放在上面所写的目录下,访问 admin 时,js 和 css 会抱 403 错误,我只有在把文件放在 var/www/static 目录下后,更改 nginx 配置,才能成功访问
|
5
Hopetree 2018-03-14 16:39:14 +08:00
@zhijiansha 你再服务器上面有收集静态文件吗?使用 collectstaic 命令?
|
6
zhijiansha OP @Hopetree 有收集静态文件,/root/test1/test2/static/这个项目目录下新建的文件,然后静态文件都收集到这里了,然后配置按照上面的配置,css 和 js 请求会出现 403,然后我把收集到的静态文件复制了一份到 /var/www/static/目录下,nginx 配置中修改为
``` location /static { #alias /root/test1/test2/static/; alias /var/www/static/; } ``` 这样才正常了 |
7
jimmyye 2018-03-14 22:18:36 +08:00
应该是权限的问题,要确保 nginx 有权限访问那个目录的文件
|
8
Hopetree 2018-03-15 09:36:57 +08:00
@zhijiansha 这个 alias /root/test1/test2/static/改成 alias /root/test1/test2 试试
|
9
zhijiansha OP @jimmyye test2 已经设置了 777 权限了,不知道是不是你说的 nginx 的权限?
|
10
zhijiansha OP @Hopetree 尝试了一下,不行,还是 403
|
11
jimmyye 2018-03-15 10:34:37 +08:00 1
再看看 static 和 static 里面文件的权限
|
12
zhijiansha OP @jimmyye 额,把里面的子文件权限都调到 777 可以了,有个疑问 var/www/下的为何权限不够也可以??
|
13
jimmyye 2018-03-15 12:37:47 +08:00 1
一般确保执行 collectstatic 操作的用户和 nginx 的运行用户在一个组里,然后设置该组有读取 static 的权限。权限问题很麻烦,我也记不住,只能出问题的时候去看看相关用户和目录文件的设置。
|
14
zhijiansha OP @jimmyye 谢谢,受教了
|