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。

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

你可能感兴趣的:(python,linux,开发语言,flask,web)