推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
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
NLL
V2EX  ›  Python

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

  •  
  •   NLL · Mar 13, 2018 · 4263 views
    This topic created in 3007 days ago, the information mentioned may be changed or developed.

    我在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 replies    2018-03-15 17:56:11 +08:00
    jimmyye
        1
    jimmyye  
       Mar 13, 2018   ❤️ 1
    把 try_files 那行删掉试试
    bulabean
        2
    bulabean  
       Mar 13, 2018
    良心云是什么云平台?
    matsuz
        3
    matsuz  
       Mar 13, 2018 via iPhone
    @bulabean 腾讯云,良心云
    NLL
        4
    NLL  
    OP
       Mar 14, 2018 via iPhone
    @jimmyye 谢谢,的确可以了,不过有个疑问,我把静态文件放在上面所写的目录下,访问 admin 时,js 和 css 会抱 403 错误,我只有在把文件放在 var/www/static 目录下后,更改 nginx 配置,才能成功访问
    Hopetree
        5
    Hopetree  
       Mar 14, 2018
    @zhijiansha 你再服务器上面有收集静态文件吗?使用 collectstaic 命令?
    NLL
        6
    NLL  
    OP
       Mar 14, 2018
    @Hopetree 有收集静态文件,/root/test1/test2/static/这个项目目录下新建的文件,然后静态文件都收集到这里了,然后配置按照上面的配置,css 和 js 请求会出现 403,然后我把收集到的静态文件复制了一份到 /var/www/static/目录下,nginx 配置中修改为
    ```
    location /static {
    #alias /root/test1/test2/static/;
    alias /var/www/static/;
    }
    ```
    这样才正常了
    jimmyye
        7
    jimmyye  
       Mar 14, 2018
    应该是权限的问题,要确保 nginx 有权限访问那个目录的文件
    Hopetree
        8
    Hopetree  
       Mar 15, 2018
    @zhijiansha 这个 alias /root/test1/test2/static/改成 alias /root/test1/test2 试试
    NLL
        9
    NLL  
    OP
       Mar 15, 2018
    @jimmyye test2 已经设置了 777 权限了,不知道是不是你说的 nginx 的权限?
    NLL
        10
    NLL  
    OP
       Mar 15, 2018
    @Hopetree 尝试了一下,不行,还是 403
    jimmyye
        11
    jimmyye  
       Mar 15, 2018   ❤️ 1
    再看看 static 和 static 里面文件的权限
    NLL
        12
    NLL  
    OP
       Mar 15, 2018
    @jimmyye 额,把里面的子文件权限都调到 777 可以了,有个疑问 var/www/下的为何权限不够也可以??
    jimmyye
        13
    jimmyye  
       Mar 15, 2018   ❤️ 1
    一般确保执行 collectstatic 操作的用户和 nginx 的运行用户在一个组里,然后设置该组有读取 static 的权限。权限问题很麻烦,我也记不住,只能出问题的时候去看看相关用户和目录文件的设置。
    NLL
        14
    NLL  
    OP
       Mar 15, 2018 via iPhone
    @jimmyye 谢谢,受教了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2833 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 04:04 · PVG 12:04 · LAX 21:04 · JFK 00:04
    ♥ Do have faith in what you're doing.