django部署,streamlit部署,结合systemctl技术

介绍

关于django的开发,在其开发文档中已经写的比较详细,但是有关部署的方面还是有些欠缺。因为我发现官网提供的大部分部署资料,是链接到其他网站让其他网站的主体来描述的。为此这篇blog衔接了部署的流程,为已开发完毕的dajngo项目提供一个部署策略。同时使用systemctl来做一个进程的开启,如同systemctl start nginx.service这样的功能。至于具体如何实现让我们unpack and jump in ~

第一步:uwsgi

我们开发django的时候经常使用

python manage.py runserver

然而这并不正式,我们需要:

  1. 使用uwsgi来作为我们的python web project 的网关(gateway)
  2. 使用nginx来作为我们的web 服务器

这一步查看uwsgi官方文档:

Setting up Django and your web server with uWSGI and nginx — uWSGI 2.0 documentation

学习完到这一步就可以了,www-data是有关网络服务器用户方面的知识,(不懂的知识要去额外搜索):

第二步:学习systemctl

第一次接触到systemctl是在使用nginx.server的时候,相信你们也是,深入的学习可以参考这为b站的视频

linux云计算白嫖系列之-.systemctl服务管理_哔哩哔哩_bilibili

感谢:墨黎浮沉

第三步:有效整合systemctl+uwsgi

这里同样是参考官方文档:

Systemd — uWSGI 2.0 文档 (uwsgi-docs-zh.readthedocs.io)

这个是翻译过的版本了,其他没什么。

可能要注意一下 ExecStart 的设置,因为这是因项目而异,而且第一步我们最终是用--emperor运行的不过经过第二步的学习,你大概也能知道有关参数怎么填写了。

最终我是能跑出这样的结果的,这里给你们看开启服务的status吧,当然是要有前面知识基础才看的懂的,不然有一些不一样的地方会抓耳挠腮。

第四步:举一反三

那经过学习其实我们是具备了customize systemctl server 的能力了,同时我的django web server,还要跨域访问另一个服务是叫streamlit,我需要使用这个服务的chatbot功能,正常运行的指令是:

streamlit run example.py

那我想能不能将这个也作为一个服务,或是说systemctl管理的线程呢?

答案是可以的,我的.service文件是这样的:

同样是可以正常运行的哈,前提是要了解这个体系的知识才知道在说啥。

总结

如果有什么不懂的也可以评论区讨论,这是一套部署流程,有一定的知识体系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值