使用python manage.py runserver XXXX:80可以调试Django程序,但是在实际生产过程中,调试状态下运行是存在问题。
在网上搜索了一下,大多数介绍文章均是采用的Django+uwsgi+nginx进行部署的。
由于仅仅是用于个人测试,因此本文将仅介绍Django+uwsgi如何部署应用。
第一步:uwsgi的安装
pip install uwsgi
本人在安装过程中一直报一个错误
plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
通过网上搜索,发现是缺少python3-dev造成的。
apt-get install python3-dev
在使用上面命令进行安装的时候,又发现这个也无法安装成功,报错如下
Package has no installation candidate
再次查找资料,通过如下命令解决。
#apt-get update
#apt-get upgrade
终于搞定了安装。
第二步:配置uwsig
在django的工程的setting.py同目录下创建uwsgi.ini文件,配置如下:
[uwsgi]
# 配置服务器的监听ip和端口,让uWSGI作为nginx的支持服务器的话,设置socke就行;如果要让uWSGI作为单独的web-server,用http
http = XXX.XX.XX.XX:8080
#socket = 127.0.0.1:3309
# 配置项目目录(此处设置为项目的根目录)
chdir = /usr/local/bin/ProcTest
# 配置入口模块 (django的入口函数的模块,即setting同级目录下的wsgi.py)
wsgi-file = ProcTest/wsgi.py
# 开启master, 将会多开一个管理进程, 管理其他服务进程
master = True
# 服务器开启的进程数量
processes = 2
# 以守护进程方式提供服, 输出信息将会打印到log中
daemonize = wsgi.log
# 服务器进程开启的线程数量
threads = 4
# 退出的时候清空环境变量
vacuum = true
# 进程pid
pidfile = uwsgi.pid
保存,退出。
第三步:运行uwsig
uwsgi --ini uwsgi.ini
至此,服务部署完毕。
停止uwsig使用命令:
uwsgi --stop uwsgi/uwsgi.pid