标签:项目 django8.4 py 部署 ini 目录 uwsgi uWSGI
django 项目部署——uwsgi
-
概念:
项目部署是指软件开发后,将开发机器上运行的软件实际安装到服务器上进行长期运行。- 在安装机器上安装和配置同版本的环境【python,数据库等】
- django项目迁移:sudo scp /home/tarena/django/mysite1 root@88.77.66.55:/home/root/xxx
- 用uWSGI替代python manage.py runserver方法启动服务器
- 配置nginx反向代理服务器
- 用nginx配置静态文件路径,解决静态路径问题。
-
WSGI(web server gateway interface):
web服务器网关接口,是python应用程序或框架和web服务器之间的一种接口,被广泛使用。
使用python manage.py runserver 通常只在开发和测试环境中使用。
当开发结束后,完善的项目代码需要在一个高效稳定的环境中运行,这时可以使用WSGI。 -
uWSGI:
是WSGI的一种网络接口的服务,它实现了http协议、WSGI协议以及uwsgi协议。主要以学习配置为主。像runserver一样,学会如何使用就行。-
安装uWSGI:
sudo pip install uwsgi
,可以使用国内的镜像sudo pip install uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple
。使用sudo pip freeze|grep -i 'uwsgi'
检查是否安装成功; -
配置uWSGI:
-
添加配置文件:项目同名文件夹/uwsgi.ini】,例如mysite1/mysite1/uwsgi.ini :cd 到day08/mysite7/mysite7 (注意是在项目同名的目录下,不是直接在项目目录),
touch uwsgi.ini
-
文件以[uwsgi]开头,有如下配置项:
套接字方式的 IP地址:端口号,[此模式需要有nginx]:socket=127.0.0.1:8000 Http通信方式的 IP地址:端口号:http=127.0.0.1:8000 项目当前的工作目录:chdir=/home/tarena/.../my_project , 必须是个绝对路径,指明当前的项目在哪 项目中wsgi.py文件的目录,相当于当前的工作目录:wsgi-file=my_project/wsgi.py , 是个相对路径 进程个数:process=4 每个进程的线程个数:threads=2 服务的pid记录文件:pidfile=uwsgi.pid 服务的日志文件位置(后台启动):daemonize=uwsgi.log 开启主进程管理模式:master=true
-
买了公有云之后,Django的settings还需要做:(现在就不改了)
修改settings.py 将DEBUG=True 改为DEBUG=False 修改settings,py 将ALLOWED_HOSTS=[]改为ALLOWED_HOSTS=['网站域名']或者['服务监听的ip地址']
-
-
启动uwsgi:cd 到uWSGI配置文件所在的目录(ls之后能看到uwsgi.ini这个文件),执行
uwsgi --ini uwsgi.ini
- 判断有没有启动起来:
ps aux|grep 'uwsgi'
, 结果中有uwsgi.ini之类的进程就说明ok了。 - 启动成功之后ls就会发现,多了uwsgi.pig和uwsgi.log两个文件,启动以及报的错等日志都在uwsgi.log中。
- 现在就可以访问之前runserver之后访问的地址了。
- 判断有没有启动起来:
-
停止uwsgi:cd 到uWSGI配置文件所在的目录,执行
uwsgi --stop uwsgi.pid
- 确认停没停也可以使用
ps aux|grep 'uwsgi'
查看一下。
- 确认停没停也可以使用
-
整个启动和停止的过程,都应该拿ps查看是否有相应的进程启动或者终止。Django中代码有任何修改,都需要重新启动uwsgi(先stop在ini)。
-
标签:项目,django8.4,py,部署,ini,目录,uwsgi,uWSGI 来源: https://blog.csdn.net/weixin_44032178/article/details/122599104
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。