Django部署uwsgi
详细过程开发环境知识补充uWSGI安装配置uWSGIuWSGI的运行管理uWSGI的运行说明开发环境云服务器(Ubuntu),Django项目文件知识补充WSGI (Web Server Gateway Interface) Web服务器网关接口,是python应用程序或框架和web服务器之间的一种接口,被广泛使用。在开发和测试环境中使用python manage.py runserver开发结束
开发环境
云服务器(Ubuntu),能run的Django项目文件
知识补充
WSGI (Web Server Gateway Interface) Web服务器网关接口,是python应用程序或框架和web服务器之间的一种接口,被广泛使用。
uWSGI定义:uWSGI是WSGI的一种,它实现了http协议、WSGI协议以及uwsgi协议(在实际应用中主要以学习配置为主)
在开发和测试环境中使用python manage.py runserver
开发结束后,使用WSGI在一个高效稳定的环境中运行完善的项目代码
uWSGI安装
服务器中执行 pip3 install uwsgi 即可
检查是否安装成功
pip3 freeze | grep -i ‘uwsgi’
如果成功安装的话,则会输出uWSGI版本;否则可能就是安装失败了,安装失败的原因可能是系统中没有gcc或者是gcc版本太高,详情请移步:pip安装uwsgi报错问题
配置uWSGI
-
添加配置文件:项目同名文件夹/uwsgi.ini
如:mysite1/mysite1/uwsgi.ini
有如下配置项:-
文件以[uwsgi]开头,
-
套接字方式的IP地址:端口号【此模式需要有nginx,如果只用uwsgi的话可以忽略此项】
socket=127.0.0.1:8000 -
Http通信方式的IP地址:端口号【如果仅使用uwsgi的话建议写成0.0.0.0:8000】
http=127.0.0.1:8000 -
项目当前工作目录
chdir=/home/test/…/my_project -
项目中wsgi.py文件的目录,相对于当前工作目录(就是上一个目录下的同名文件夹)
wsgi-file=my_project/wsgi.py -
进程个数
process=4 -
每个进程的线程个数
threads=2 -
服务的pid记录文件
pidfile=uwsgi.pid -
服务的目录文件位置(代表是否后台启动以及启动的日志输出在哪里)
daemonize=uwsgi.log -
开启主进程管理模式
master=true -
项目中静态文件static的路径
static-map = /static=/home/…/zy_ds/static
-
下面是我自己的配置文件:
代码展示(可以直接拷贝)
[uwsgi]
http=0.0.0.0:8000
chdir=/home/wanghuimeng/python_SFTP/django_object/zy_ds_files/zy_ds
wsgi-file=zy_ds/wsgi.py
process=4
threads=2
pidfile=uwsgi.pid
daemonize=uwsgi.log
master=True
static-map = /static=/home/wanghuimeng/python_SFTP/django_object/zy_ds_files/zy_ds/static
特殊说明:
Django的settings.py需要做如下配置:
1,修改settings.py将DEBUG=True改为False(出于安全考虑)
2,修改settings.py将ALLOWED_HOSTS=[]改为ALLOWED_HOSTS=[‘网站域名’]或者[‘公网IP’]
uWSGI的运行管理
启动uwsgi
cd 到 uWSGI 配置文件所在目录
uwsgi --ini uwsgi.ini
如下:启动成功(图片来自于网上某位大佬)。
停止uwsgi
cd 到 uWSGI 配置文件所在目录
uwsgi --stop uwsgi.pid
如下:
整个启动和停止过程都要拿ps亲眼看到才行
uWSGI的运行说明
1,无论是启动还是关闭,都要执行ps aux|grep ‘uwsgi’ 确认是否符合预期
2,当uwsgi启动后,当前django项目的程序已变成后台守护进程,在关闭当前终端时此进程也不会停止
3,启动成功后,进程在后台执行,所有日志均输出在配置文件所在目录的uwsgi.log中
4,Django中代码有任何修改,都需要重启uwsgi(重启即为先关闭,再开启)
更多推荐
所有评论(0)