ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python web部署

2021-09-25 23:33:28  阅读:202  来源: 互联网

标签:__ web gunicorn nginx Python app 部署 日志 uwsgi


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启动。

标签:__,web,gunicorn,nginx,Python,app,部署,日志,uwsgi
来源: https://www.cnblogs.com/grocerystore/p/15336035.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有