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日志并进行多维度分析。
相关文章
|
5天前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
|
10天前
|
关系型数据库 数据库 数据安全/隐私保护
Python Web开发
Python Web开发
40 6
|
16天前
|
开发框架 前端开发 JavaScript
利用Python和Flask构建轻量级Web应用的实战指南
利用Python和Flask构建轻量级Web应用的实战指南
47 2
|
18天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
33 1
|
18天前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
6月前
|
开发框架 开发者 Python
深入探究Python Web开发框架:Flask与Django
Python作为一种广泛应用于Web开发的编程语言,其拥有众多优秀的Web开发框架。本文将深入探讨其中两大知名框架——Flask与Django。通过对它们的概念与实践进行比较分析,帮助读者更好地理解和选择适合自己项目需求的Web开发框架。
|
6月前
|
前端开发 数据库 Python
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
127 0
|
23天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
122 45
|
4月前
|
开发框架 JSON API
震撼发布!Python Web开发框架下的RESTful API设计全攻略,让数据交互更自由!
【7月更文挑战第22天】在Python Web开发中,设计高效的RESTful API涉及选择框架(如Flask或Django)、明确资源及使用HTTP方法(GET, POST, PUT, DELETE)来操作数据。响应格式通常是JSON,错误处理也很重要。示例展示了使用Flask创建图书管理API,包括版本控制、文档化、安全性和性能优化是最佳实践。这样的API使数据交互更顺畅。
97 2
|
24天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
35 2
下一篇
无影云桌面