uwsgi部署python web项目

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: uwsgi部署python web项目

1.安装uWSGI模块

pip install uwsgi


2.在项目根目录下创建uWSGI配置文件 【uwsgi.ini】

[uwsgi]
#地址端口
http = 0.0.0.0:80
#项目路径
chdir = /root/projectname
#项目启动文件
wsgi-file = manage.py
#项目需要调用的启动类
callable = app
#进程线程设置
processes = 4
threads = 10
#日志文件
daemonize = /app/logs/uwsgi.log
#保存主进程pid文件
pidfile = uwsgi.pid
#是否需要主进程
master = true

3.相关指令



启动

uwsgi --ini uwsgi.ini

重新加载

uwsgi --reload uwsgi.pid

停止

uwsgi --stop uwsgi.pid

查看所有运行的uwsgi服务:

ps -ef |grep uwsgi

强行结束


通过

ps -ef |grep uwsgi

检查uwsgi检查进程


将带着之前的ini配置的进程全部kill


相关kill指令:


kill全部uwsgi ini进程

killall -s INT uwsgi

日志分割(仅供参考)


要将uwsgi启动的Python web接口的日志文件按照每天来进行存储,可以采用以下步骤


1.在uwsgi配置文件中添加以下内容:

log-date = true
log-reopen = true

这将使uwsgi在每天的午夜自动重新打开日志文件,并将日期添加到日志文件名中。


2.在日志目录中创建一个符号链接,将其指向当前日志文件。


这样就可以让日志文件始终使用相同的名称。例如:

ln -sf /var/log/uwsgi/app/myapp.log.20210315 /var/log/uwsgi/app/myapp.log

这将创建一个名为myapp.log的符号链接,将其指向前一天的日志文件。


3.使用logrotate工具来对日志文件进行归档和压缩,并按照日期将其命名。


例如,可以创建一个名为/etc/logrotate.d/uwsgi的文件,其中包含以下内容:

/var/log/uwsgi/app/myapp.log {
daily
rotate 7
compress
dateext
missingok
notifempty
sharedscripts
postrotate
systemctl reload uwsgi.service > /dev/null 2>&1 || true
endscript
}

这将使logrotate每天自动将myapp.log文件进行归档和压缩,并将其命名为myapp.log-YYYYMMDD.gz。rotate指定了保留日志文件的数量,postrotate中的命令将重新加载uwsgi服务,以便使用新的日志文件。


4.最后,确保uwsgi日志目录和日志文件的权限设置正确,以便uwsgi服务可以访问并写入日志文件。

chown uwsgi:uwsgi /var/log/uwsgi/app
chmod 755 /var/log/uwsgi/app

这将 将/var/log/uwsgi/app目录的所有权和权限设置为uwsgi用户和组,并设置目录权限为755


此外,还可以考虑在uwsgi配置文件中配置日志级别和日志格式,以便更好地记录和跟踪应用程序的行为。


例如:

log-date = true
log-reopen = true
log-format = %(asctime)s %(levelname)s %(message)s
log-level = info

这将启用uwsgi日志记录,以便在每行日志中包含时间戳、日志级别和消息文本。可以根据需要将日志级别设置为debug、info、warning、error或critical。


最后,通过对日志文件进行归档和压缩,可以节省磁盘空间,并使日志文件更易于管理和备份。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
存储 监控 安全
如何在Python Web开发中确保应用的安全性?
如何在Python Web开发中确保应用的安全性?
|
2月前
|
安全 测试技术 网络安全
如何在Python Web开发中进行安全测试?
如何在Python Web开发中进行安全测试?
|
2月前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
40 4
|
2月前
|
缓存 JSON 监控
如何在项目中保证 Web 组件化的性能
保证 Web 组件化的性能需要从多个方面入手,综合运用各种优化方法和策略。通过持续的优化和改进,能够提高组件化的整体性能,为用户提供更好的体验,同时也有助于提高项目的开发效率和质量。
48 8
|
2月前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
38 7
|
2月前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
61 1
|
2月前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
128 3
|
2月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
38 4
|
2月前
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
144 1
|
负载均衡 应用服务中间件 nginx
Django通过Nginx和uWSGI实现负载均衡
Django通过Nginx和uWSGI实现负载均衡
232 0
下一篇
开通oss服务