前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python部署-Flask+uwsgi+Nginx

python部署-Flask+uwsgi+Nginx

作者头像
Se7eN_HOU
发布2020-04-16 18:54:47
9090
发布2020-04-16 18:54:47
举报
文章被收录于专栏:侯哥的Python分享

一、Flask部分(app.py)

flask即Python代码:部分参考代码如下,相信很多人如果看到这篇文章一定有flask的代码能力。

代码语言:javascript
复制
from app import create_app
from singtec_Config import *

app = create_app(DEV_MODEL)

@app.route('/')
def hello_world():
    return 'Hello World!!!'


if __name__ == '__main__':
    app.run(host='0.0.0.0',port=8000)

二、uwsgi部分(uwsgi.ini)

简单介绍一下uwsgi:在python web开发中,我们经常使用uwsgi配合nginx部署一个web框架,如Djangoflask。同时我们又会说,框架和web服务器之间要符合WSGI协议。那就来厘清一下这几个概念。

1、web服务器和web框架

  web服务器即用来接受客户端请求,建立连接,转发响应的程序。至于转发的内容是什么,交由web框架来处理,即处理这些业务逻辑。如查询数据库、生成实时信息等。Nginx就是一个web服务器,Djangoflask就是web框架。

2、WSGI和uwsgi

WSGI是一种通信协议。WSGI 不是框架,也不是一个模块,而是介于 Web应用程序(Web框架)与 Web Server 之间交互的一种规范。

uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。

uwsgi是一种通信协议,不过跟WSGI分属两种东西,该协议下速度比较快。

代码语言:javascript
复制
[uwsgi]
# 如果使用nginx就用socket
socket=0.0.0.0:8000

# 如果不使用socket,直接用uwsgi启动程序,就是用http
#http=0.0.0.0:8000

# 如果程序中有文件下载,图片、视频等就需要就上这个配置
sgi-disable-file-wrapper=true

# flask程序在你服务器上的目录
chdir=/opt/www/singtec/www/singtecProject

# flask项目的启动文件
wsgi-file=manage.py

三、nginx部分

  简单介绍一下nginx:Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

常用功能:反向代理、正向代理、负载均衡、服务器的动静分离、高可用等,这里就不一一介绍了,主要介绍一下关于uwsgi的配置。

代码语言:javascript
复制
# 设置用户
user  root;
# 设置worker及可以理解为进程或者线程数
worker_processes  4;

# 日志设置
error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;

# 每个worker的最大连接数
events {
    worker_connections  1024;
}

# http全局设置
http {
    
    # 设置mine.type类型
    include       mime.types;
    default_type  application/octet-stream;
  
  # 日志格式 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
   
  # 运行日志     
    access_log  logs/access.log  main;

  # 如果有上传文件,例如视频或者图片,限制文件传输大小的
    client_max_body_size 100M;  
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Flask部分(app.py)
  • 二、uwsgi部分(uwsgi.ini)
    • 1、web服务器和web框架
      • 2、WSGI和uwsgi
      • 三、nginx部分
      相关产品与服务
      负载均衡
      负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档