生产环境使用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段。

嗯,希望一切顺利~

时间: 2024-10-12 23:46:36

生产环境使用Nginx+uwsgi部署Django的相关文章

生产环境使用Nginx+uwsgi部署Diango项目

环境:CentOS6.5 + Nginx1.11.5 + Python3.5.2 1. 安装基础软件包 yum install -y zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel  2. 安装Python3.5.2版本 源码包下载,戳我 wget https://www.python.org/ftp/python/3.5.2/Python-3.5

nginx + uwsgi 部署 Django+Vue项目

nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用django第三方的wsgifef单机模块,性能很低 python3 manage.py runserver 0.0.0.0:8000 使用uwsgi 去启动django项目,支持并发更多 准备前后端代码 先从vue前端搞起 解决node环境 更改vue发送请求的接口地址, 这个vue发送的地址,应该是

结合Nginx+Uwsgi部署Django项目

大致想法以及背景: 刚开始创建Django项目,可以通过runserver命令更方便地调试程序,但是如果当一个项目完成了之后,需要部署到真正的环境,就需要考虑其稳定性.之前在写毕设的时候,写过一个自动化运维监控的项目,部署在自己的阿里云服务器上.那时候没啥经验,直接一个(pyhon runserver 0.0.0.0:8888 &)让项目在后台自己跑.所以对一些项目挂掉,数据库连接失败等问题不能够及时定位解决.所以现在花点时间结合Nginx+Uwsgi部署自己的项目,利用Nginx处理静态资源请

nginx+uwsgi部署django的简单介绍

1.安装django  环境ubuntu:sudo pip install django 2.新建一个django项目 命令:django-admin.py startproject  wlwebsite1 启动项目:python manage.py runserver 0.0.0.0:8000 浏览器查看,如下显示即正常 3.django项目有了,现在安装uwsgi 环境ubuntu:sudo pip install uwsgi 安装成功后看uwsgi版本:uwsgi --version ws

使用Nginx+uWSGI部署Django项目

1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi ln -s /usr/local/python3/bin/uwsgi /usr/local/bin/uwsgi #建立软链接 uwsgi --version #检查安装成功 3.基于uwsgi+django项目部署 django项目目录结构(orange_manage为app): uwsgi --ht

nginx+uwsgi部署django项目

操作可参考http://www.linuxyw.com/353.html (nginx+uwsgi+django+python环境部署文档) 这里只说明几点我的配置 环境: Nginx版本:1.7.9 Django版本: 1.6.8 Python版本:2.7.5 Uwsgi版本:2.0.9 安装MySQL-python: 最好源码安装,yum install -y MySQL-python可能因为路径问题import MySQLdb失败,下载地址: http://sourceforge.net/

使用nginx+uwsgi部署django应用

使用过django来开发网页的人都知道,django的manage.py自带了一个runserver命令,这个命令使得本地调试非常方便,然而在真正上线网站时对并发能力的支持非常重要,本教程教你用nginx+uwsgi来将django应用部署在服务器上. 教程: 1.首先保证django项目在本地调试完毕.(这是废话) 2.在服务器安装好nginx和uwsgi两个软件.(yum或者apt-get) 3.找到nginx.conf文件(位置在/usr/local/nginx/conf/nginx.co

nginx+uwsgi 部署 django

预装:nginx,  django Django站点tree |Site |-----Blog(自建的项目) |-----Manage.py |-----Site(setting url wsgi-.) |       |-----wsgi.py |-----static |       |-----js |  |-----css |-----uwsgi.log |-----uwsgi-socket.xml 1.      libxml2.libxml2-devel.uwsgi 1.1 安装 注

Debian7下初次尝试Nginx+Uwsgi部署Django开发环境

之前一直都用的是新浪的SAE,但是由于各种限制,各种不爽,终于下定决心开始折腾VPS,于是在搬瓦工上买了个年付VPS,开始折腾之旅. 由于对Linux一窍不通,所以不知道如何在Linux上部署开发环境,因此事先查询了好多的资料,找到几篇可以参考的文章,由于系统版本,Nginx版本,Python版本不同,配置的情况可能也略有不同,所以先照着别人的折腾看看. debian一般默认就安装有python,所以省略这一步,不过有些系统python版本太低,需要先升级Python到需要的版本,怎么升级就不介