Python web部署
2021/9/26 1:11:01
本文主要是介绍Python web部署,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Python web部署
内容简介
本篇介绍了使用uswgi与,gunicorn部署python web项目(flask框架)
为什么要使用nginx + gunicorn的组合,负载均衡的话gunicorn也可以做。主要是因为nginx可以做反向代理(多个服务共用一个端口),这种好处在只部署一个Web应用的时候不太容器体现,以及nginx对静态文件的支持比较好。
wsgi:gunciorn,uswgi
反向代理:nginx,apache
框架文件:flaskTest.py(flask)
方案一:nginx+gunicorn+flask
方案二:nginx+uwsgi+flask
具体内容
flaskText.py
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'ok' if __name__=='__main__': app.run('ip', 80)
gunicorn
两种启动方式
命令行启动
gunicorn -w 2 -b :80 flaskTest:app
配置文件启动
配置文件:gunicorn.conf.py
import multiprocessing import os import logging import logging.handlers from logging.handlers import WatchedFileHandler bind = "127.0.0.1:80" workers = workers = multiprocessing.cpu_count() * 2 + 1 #进程数 threads = 2 #指定每个进程开启的线程数 backlog = 512 #监听队列 BASE_DIR = os.path.abspath(os.path.dirname(__file__)) print('----------------') # 日志配置 loglevel = 'info' #日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置 access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"' #设置gunicorn访问日志格式,错误日志无法设置 accesslog = os.path.join(BASE_DIR, "log/gunicorn_access.log") #访问日志文件 errorlog = os.path.join(BASE_DIR, "log/gunicorn_error.log") #错误日志文件 print('--------------------------------------------------')
配置完配置文件后启动
gunciorn -c gunicorn.conf.py flaskTest:app
uWsgi
两种启动方式
直接启动
uwsgi --socket 127.0.0.1:80 --protocol=http -p 3 -w flasktext:app
配置文件启动 uwsgi.ini
[uwsgi] http=:80 wsgi-file=/root/flasktest/flasktext.py callable=app processes=4 threads=2
启动命令
uwsgi --ini ./uwsgi.ini
停止命令
pkill -f -9 uwsgi
Supervisor
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
原文地址:Supervisor使用详解 - 小学弟- - 博客园 (cnblogs.com)
supervisorctl status //查看所有进程的状态 supervisorctl stop es //停止es supervisorctl start es //启动es supervisorctl restart //重启es supervisorctl update //配置文件修改后使用该命令加载新的配置 supervisorctl reload //重新启动配置中的所有程序
Supervisor安装过程遇到的问题:
使用supervisor进程管理命令之前先启动supervisord,否则程序报错。
使用命令supervisord -c /etc/supervisord.conf
启动。
这篇关于Python web部署的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础