zoukankan      html  css  js  c++  java
  • 生产环境使用Nginx+uwsgi部署Django

    在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可。如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等

    在网上找到了不错的部署的教程,讲解的还是很详细的,我就不重新再整理了。

    五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上) – Django中国社区
    五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) – Django中国社区

    但是作为记录,我还是要记录下部署中遇到的问题:

    (一)解决Django生产环境部署的静态文件丢失问题

    有些时候,把程序放在生产环境,不过出于一些原因还没有配置nginx等环境,关闭了Debug,想看看网站,这时会出现静态文件无法访问,界面一塌糊涂的情况。使用如下命令即可成功使用静态文件

    python manage.py runserver 0.0.0.0:8000 --insecure

    (二)部署生产环境之前的准备

    正如(一)中的方法只是测试时使用,如何处理静态文件,其实需要交给nginx等这样的高效软件来完成,所以在配置之前,先使用

    python manage.py collectstatic

    用来收集静态文件到static文件夹,然后就可以参照上面的教程,通过nginx来分配使用。

    另外,推荐使用lnmp一键安装脚本,这样nginx,mysql等很多东西就不用设置了。

    (三)重启uwsgi脚本

    在上面的教程中提到的uwsgi,每一次修改程序后都应该重启uwsgi来使修改生效。在manage.py同级目录新建restart.sh脚本,内容如下:

    killall uwsgi
    uwsgi -x django_socket.xml

    (这个django_socket.xml根据你起得名字替换)

    —————-

    这之后就是关于pythonic程序的一些修改:

    这个程序是github上的一个开源django论坛程序。还是很不错的。

    不过github上的版本还是有点点问题的。已经Fork了,但懒的忙的没时间去修改,就先在博客记录下。

    (1)settings.py中应添加DOMAIN = ‘127.0.0.1’ (根据实际填写IP或域名)

    (2)LOGO的路径问题,修改templates目录下的base.html模板,添加static

    <link rel="shortcut icon" href="/favicon.ico"  type="image/x-icon" />
    <link rel="shortcut icon" href="/static/favicon.ico"  type="image/x-icon" />

    (3)注册APP问题。

    在accounts和people模块中的URL配置中,把accounts.views改为apps.accounts.views

    OK,修改完毕。

    虽然还有一些小问题,到时再读读源码估计就可以解决了。

    其实安全问题还是比较重要的,admin直接暴露出来不是很好,接下来研究研究,看看是更改登陆admin的地址还是禁止IP段。

    嗯,希望一切顺利~

  • 相关阅读:
    mysql导入数据到oracle中
    CAS代理配置
    CAS登录时不仅仅需要用户名来确认身份的情况
    easyui datalist按组多选
    easyui tree loadFilter的使用
    sketchup
    Spring Autowired 注入失败总是Null
    table sorting–angularjs
    mac系统下mysql开机启动总是3307
    angularjs 实现 文件拖拽,缩略图显示
  • 原文地址:https://www.cnblogs.com/ishell/p/4217309.html
Copyright © 2011-2022 走看看