Python项目的服务器部署怎么操作,涉及哪些知识
Admin 2022-06-28 群英技术资讯 1044 次浏览
这篇文章主要讲解了“Python项目的服务器部署怎么操作,涉及哪些知识”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python项目的服务器部署怎么操作,涉及哪些知识”吧!基本概念:
两者之间的区别:
在我们平时搭建一个Python Web项目时,比如Django框架的项目,这时候常见的服务端架构:
接下来针对上文提到Django项目部署架构,聊聊这几个协议在这过程中的作用:
简单来讲,uWSGI也是一个Web服务器,他虽然同时实现了http、uwsgi、wsgi协议,但是更多被作为应用服务器和应用程序之间进行通信。
那么这里就有个疑问了,为什么uWSGI都能直接处理http请求了,还需要Nginx服务器?这样处理有几点原因:
总而言之,Nginx服务器在处理http请求上,都有着uWSGI没有的优势,所以在日常部署环境中,经常会使用到Nginx+uWSGI。
uWSGI有两种安装方式,一种是通过pip安装,一种是通过源码安装。这里就简单介绍pip安装方式,源码安装有兴趣可以私下自己了解。
pip install uwsgi
uWSGI服务器在启动的过程中主要涉及到以下这几个文件,其中uwsgi.sock还会涉及到Nginx相关部署的问题,在Nginx配置的时候回继续展开讲。
(venv) [root@mbb-48 uwsgi]# tree . . |-- uwsgi.ini # uwsgi配置文件 |-- uwsgi.log # uwsgi日志文件 |-- uwsgi.pid # uwsgi运行进程pid |-- uwsgi.sock # uwsgi socket `-- uwsgi.status # uwsgi状态文件
以下配置是自己一个项目中用到的,其中的配置参数都是比较常见通用。
[uwsgi] chdir=/data/Novel/novel_test module=novel_test.wsgi:application home=/data/Novel/venv static-map=/static=/data/Novel/novel_test/static threads=8 http=0.0.0.0:23606 master=true vacuum=true thunder-lock=true uid=root gid=root harakiri=30 post-buffering=4096 socket=%(chdir)/uwsgi/uwsgi.sock stats=%(chdir)/uwsgi/uwsgi.status pidfile=%(chdir)/uwsgi/uwsgi.pid daemonize=%(chdir)/uwsgi/uwsgi.log
配置解析
额外配置
上面介绍了相关常用的配置参数,当设置uWSGI参数后,需要启动指定配置文件,以及有关暂停,重启的动作。
uwsgi --ini uwsgi.ini # 启动uWSGI uwsgi --stop uwsgi.pid # 暂停uWSGI uwsgi --reload uwsgi.pid # 重启uWSGI
uWSGI之一Stats服务器机制,它能将uWSGI状态作为一个JSON对象导出一个socket中,只需要像我们前面配置uWSGI配置文件一样,添加stats选项,跟着一个有效的socket地址接口。
当你配置完毕后,就可以通过客户端连接到指定的socket地址,将会获得一个包含uWSGI内部统计数据的JSON对象。
uwsgi --connect-and-read uwsgi.status
执行完这个命令后,读取的返回的结果是一个json字符串,字符串中包括每个线程的状态,整个应用的负载,版本,监听队列等详细的信息。
uwsgitop查看实时状态
uwsgitop是一个开源的实时监控uWSGI服务器状态的工具,安装也十分简单:
pip install uwsgitop
具体uwsgitop像一个top命令,监听应用程序并且使用socket地址进行调用,查看进程运行状态,运行详细信息:
uwsgitop uwsgi/uwsgi.status uwsgi-2.0.19.1 - Sun Sep 20 15:58:48 2020 - req: 6 - RPS: 0 - lq: 0 - tx: 67.6K node: mbb-48 - cwd: /data/Novel/novel_test - uid: 0 - gid: 0 - masterpid: 15109 WID % PID REQ RPS EXC SIG STATUS AVG RSS VSZ TX ReSpwn HC RunT LastSpwn 1 100.0 15144 6 0 0 0 idle 15ms 0 0 67.6K 1 0 125.449 15:48:08 :2 16.7 - 1 0 - - idle - - - - - :3 16.7 - 1 0 - - idle - - - - - :0 33.3 - 2 0 - - idle - - - - - :1 33.3 - 2 0 - - idle - - - - -
关于uWSGI服务器相关使用就总结到这里,因为在平时工作中会经常接触到,但是由于没有应用到一些高并发的场景,对于uwsgi调优方面没有多少经验,等待以后遇到此类问题再继续总结性能调优方面的问题。同时有关Nginx方面的配置留到下一篇文章继续讲,未完待续。。。。。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要给大家分享Python字符串对齐的方法,包括ljust()、rjust() 和 center() 这三种方法都可以来文本对齐,感兴趣的朋友可以参考一下,希望大家阅读完这篇文章能有所收获,下面我们一起来学习一下吧。
这篇文章主要介绍了搭建Pytorch 和 Tensorflow v1 兼容的环境,本文是小编经过多次实践得到的环境配置教程,给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
本文主要介绍了TensorFlow训练网络两种方式,一种是基于tensor(array),另外一种是迭代器,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要给到大家分享的是关于Python中对mysql数据做模糊查询的思路以及操作,主要介绍用sql语句做多条件模糊查询,小编认为比较实用,因此分享给大家作参考,下面我们就一起来了解一下python的mysql模糊查询。
这篇文章主要为大家介绍了python基础中的文件对象,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008