首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

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

  •  
  •   zhijiansha · 102 天前 · 1341 次点击
    这是一个创建于 102 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在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
    
    14 回复  |  直到 2018-03-15 17:56:11 +08:00
        1
    jimmyye   102 天前   ♥ 1
    把 try_files 那行删掉试试
        2
    bulabean   102 天前
    良心云是什么云平台?
        3
    matsuz   102 天前 via iPhone
    @bulabean 腾讯云,良心云
        4
    zhijiansha   102 天前 via iPhone
    @jimmyye 谢谢,的确可以了,不过有个疑问,我把静态文件放在上面所写的目录下,访问 admin 时,js 和 css 会抱 403 错误,我只有在把文件放在 var/www/static 目录下后,更改 nginx 配置,才能成功访问
        5
    Hopetree   102 天前
    @zhijiansha 你再服务器上面有收集静态文件吗?使用 collectstaic 命令?
        6
    zhijiansha   102 天前
    @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   101 天前
    应该是权限的问题,要确保 nginx 有权限访问那个目录的文件
        8
    Hopetree   101 天前
    @zhijiansha 这个 alias /root/test1/test2/static/改成 alias /root/test1/test2 试试
        9
    zhijiansha   101 天前
    @jimmyye test2 已经设置了 777 权限了,不知道是不是你说的 nginx 的权限?
        10
    zhijiansha   101 天前
    @Hopetree 尝试了一下,不行,还是 403
        11
    jimmyye   101 天前   ♥ 1
    再看看 static 和 static 里面文件的权限
        12
    zhijiansha   101 天前
    @jimmyye 额,把里面的子文件权限都调到 777 可以了,有个疑问 var/www/下的为何权限不够也可以??
        13
    jimmyye   101 天前   ♥ 1
    一般确保执行 collectstatic 操作的用户和 nginx 的运行用户在一个组里,然后设置该组有读取 static 的权限。权限问题很麻烦,我也记不住,只能出问题的时候去看看相关用户和目录文件的设置。
        14
    zhijiansha   101 天前 via iPhone
    @jimmyye 谢谢,受教了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1746 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 17ms · UTC 11:15 · PVG 19:15 · LAX 04:15 · JFK 07:15
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1