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 数据分析:从零开始构建你的数据科学项目
【10月更文挑战第9天】Python 数据分析:从零开始构建你的数据科学项目
65 2
|
26天前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
1月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
29 4
|
1月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
1月前
|
弹性计算 Linux iOS开发
Python 虚拟环境全解:轻松管理项目依赖
本文详细介绍了 Python 虚拟环境的概念、创建和使用方法,包括 `virtualenv` 和 `venv` 的使用,以及最佳实践和注意事项。通过虚拟环境,你可以轻松管理不同项目的依赖关系,避免版本冲突,提升开发效率。
91 3
|
2月前
|
数据处理 Apache 数据库
将 Python UDF 部署到 Apache IoTDB 的详细步骤与注意事项
【10月更文挑战第21天】将 Python UDF 部署到 Apache IoTDB 中需要一系列的步骤和注意事项。通过仔细的准备、正确的部署和测试,你可以成功地将自定义的 Python UDF 应用到 Apache IoTDB 中,为数据处理和分析提供更灵活和强大的支持。在实际操作过程中,要根据具体情况进行调整和优化,以确保实现最佳的效果。还可以结合具体的代码示例和实际部署经验,进一步深入了解和掌握这一过程。
32 2
|
2月前
|
机器人 Shell Linux
【Azure Bot Service】部署Python ChatBot代码到App Service中
本文介绍了使用Python编写的ChatBot在部署到Azure App Service时遇到的问题及解决方案。主要问题是应用启动失败,错误信息为“Failed to find attribute 'app' in 'app'”。解决步骤包括:1) 修改`app.py`文件,添加`init_func`函数;2) 配置`config.py`,添加与Azure Bot Service认证相关的配置项;3) 设置App Service的启动命令为`python3 -m aiohttp.web -H 0.0.0.0 -P 8000 app:init_func`。
|
2月前
|
JSON 搜索推荐 API
Python的web框架有哪些?小项目比较推荐哪个?
【10月更文挑战第15天】Python的web框架有哪些?小项目比较推荐哪个?
76 1
|
2月前
|
Linux Python
【Azure Function】Python Function部署到Azure后报错No module named '_cffi_backend'
ERROR: Error: No module named '_cffi_backend', Cannot find module. Please check the requirements.txt file for the missing module.
|
2月前
|
SQL 关系型数据库 数据库
优化Web开发流程:Python ORM的优势与实现细节
【10月更文挑战第4天】在Web开发中,数据库操作至关重要,但直接编写SQL语句既繁琐又易错。对象关系映射(ORM)技术应运而生,让开发者以面向对象的方式操作数据库,显著提升了开发效率和代码可维护性。本文探讨Python ORM的优势及其实现细节,并通过Django ORM的示例展示其应用。ORM提供高级抽象层,简化数据库操作,提高代码可读性,并支持多种数据库后端,防止SQL注入。Django内置强大的ORM系统,通过定义模型、生成数据库表、插入和查询数据等步骤,展示了如何利用ORM简化复杂的数据库操作。
66 6
下一篇
DataWorks