一、Flask部分(app.py)

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

  1. from app import create_app
  2. from singtec_Config import *
  3.  
  4. app = create_app(DEV_MODEL)
  5.  
  6. @app.route('/')
  7. def hello_world():
  8. return 'Hello World!!!'
  9.  
  10. if __name__ == '__main__':
  11. 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分属两种东西,该协议下速度比较快。

  1. [uwsgi]
  2. # 如果使用nginx就用socket
    socket=0.0.0.0:8000
  3.  
  4. # 如果不使用socket,直接用uwsgi启动程序,就是用http
    #http=0.0.0.0:8000
  5.  
  6. # 如果程序中有文件下载,图片、视频等就需要就上这个配置
    sgi-disable-file-wrapper=true
  7.  
  8. # flask程序在你服务器上的目录
    chdir=/opt/www/singtec/www/singtecProject
  9.  
  10. # flask项目的启动文件
    wsgi-file=manage.py
  1. # 启动文件中的flask app(即第一部分中的app)
    callable=app
  2.  
  3. # 启动的进程数
  4. processes=4
  5.  
  6. #启动的线程数
  7. threads=2
  8.  
  9. # 是否启动多线程
  10. enable-threads=True
  11.  
  12. # 是否将uwsgi的运行线程设置为主线程,如果设置为主进程,在开启的其他的子进程会随着主进程关闭而关闭
  13. master=True
  14.  
  15. # 设置用来记录uwsgi进程号的文件
  16. pidfile=uwsgi.pid
  17.  
  18. # 设置uwsgi运行的日志文件(可以记录程序运行的)
  19. daemonize=uwsgi.log
  20.  
  21. #在每个worker而不是master中加载应用
  22. lazy-apps=true
  23.  
  24. # 设置编码(不是必须)
  25. env LANG="en_US.UTF-8"
  26. env LANGUAGE="en_US.UTF-8"

三、nginx部分

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

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

  1. # 设置用户
    user root;
    # 设置worker及可以理解为进程或者线程数
  2. worker_processes 4;

  3. # 日志设置
  4. error_log logs/error.log;
  5. error_log logs/error.log notice;
  6. error_log logs/error.log info;

  7. # 每个worker的最大连接数
  8. events {
  9. worker_connections 1024;
  10. }
  11.  
  12. # http全局设置
  13. http {
  14.  
  15. # 设置mine.type类型
  16. include mime.types;
  17. default_type application/octet-stream;
  18.   
      # 日志格式
  19. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  20. '$status $body_bytes_sent "$http_referer" '
  21. '"$http_user_agent" "$http_x_forwarded_for"';

  22.   # 运行日志
  23. access_log logs/access.log main;
  24.  
  25.   # 如果有上传文件,例如视频或者图片,限制文件传输大小的
    client_max_body_size 100M;  
  1. # 服务器级别的设置
  2. server {
  3.  
  4.      # 设置监听端口
  5. listen 80;
         # 设置访问的域名
  6. server_name localhost;

     # 请求级别的设置 

     # /便是监听什么参数都没有的根目录请求

     location / {

       # 设置请求的根目录

       root   /opt/www/singtec;

  1. # 设置根目录的请求静态index.html

index  index.html index.htm;

  1.    # 一下两行是设置请求的时候解析真实地址的

proxy_set_header X-Real-IP $remote_addr;

  1.  

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

  1.    # 设置监听请求以api开头的接口

location /api{

  1.  

# 设置导入uwsgi_params文件(通常在nginx安装的时候,默认和nginx.cong文件在同一个目录下)

include /usr/local/nginx/conf/uwsgi_params;

  1. # 设置nginx的反向代理路由,只要请求api开头的都去访问0.0.0.0:8000程序,及我们的flask程序的接口,实现uwsgi的反向代理

uwsgi_pass 0.0.0.0:8000;

}

    }

python部署-Flask+uwsgi+Nginx的更多相关文章

  1. python Linux flask uwsgi nginx 在centos7.3部署

    0.直接上uwsgi和nginx安装命令 linux 安装uwsgi yum groupinstall "Development tools" yum install zlib-d ...

  2. 阿里云部署 Flask + uWSGI + Nginx

    一.引言 今天入手了一台阿里云服务器,是centeros 7.5版本.本文解决的是 Flask 的部署问题.假设你的Flask的应用已经完成,现在只是部署的问题,本文以部署我的二次开发微信订阅号的项目 ...

  3. 写给新手看的Flask+uwsgi+Nginx+Ubuntu部署教程

    学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...

  4. Flask+uwsgi+Nginx+Ubuntu部署

    学了一段时间flask,可是一直没有做过部署, 于是想着怎么部署呢, 想想,先吧服务给搞通吧,于是呢 就先想着去吧服务给搞起来,这里选择的是Flask+uwsgi+Nginx+Ubuntu, Pyth ...

  5. Flask+uwsgi+Nginx+Ubuntu部署教程

    学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...

  6. 阿里云部署 Flask + WSGI + Nginx 详解

    抵不住朋友的诱惑,今天终于入手了一台阿里云服务器,是Ubuntu 1.4 32位版本,最初考虑是用来尝尝鲜只是买了个最低配的,价格算起来与在国外买个空间的价格相当吧(可能一年才贵100多),但用起来感 ...

  7. windows下apache + mod_wsgi + python部署flask接口服务

    windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...

  8. Python 部署 flask 用uwsgi和nginx

    安装uwsgi nginx 具体方法请百度 1.在项目目录下建立.ini文件 xad_uwsgi.ini [uwsgi] master=true #项目目录 chdir=/root/zhaoyingj ...

  9. 使用Flask+uwsgi+Nginx部署Flask正式环境

    环境准备 在开始正式讲解之前,我们将首先进行环境准备. Step1:安装Python,pip以及nginx: sudo apt-get update sudo apt-get install pyth ...

随机推荐

  1. vscode使用cnpm报错

     1.在wind10搜索框里输入 Windows PowerShell 进入这个界面 2.打开Windows PowerShell 之后 输入命令:set-ExecutjionPolicy Remot ...

  2. JVM 参数及各部分含义(转)

    转自:https://www.jianshu.com/p/1c6b5c2e95f9 JVM参数分类 JVM参数分为标准参数和非标准参数: 标准参数: "-"开头的参数,如-clie ...

  3. Kafka的面试题

    1.Kafka的设计是什么样的呢?Kafka将消息以topic为单位进行归纳将向Kafka topic发布消息的程序成为producers.将预订topics并消费消息的程序成为consumer.Ka ...

  4. Redis基本数据类型、数据持久化、过期策略及淘汰机制

    一点技术.技术乐享!!! 如果有人问你:Redis这么快,他的“多线程模式”你了解吗? 请回答他:您是想问Redis这么快,为什么还是单线程模式吗? redis是什么 简单来说redis是C语言开发的 ...

  5. EOS基础全家桶(一)开篇

    简介 从今天开始我会在FishoPark上与大家分享EOS的一些技术经验和基础,如果大家在看文章的过程中有任何问题,欢迎在网站下方的评论里留言,我会尽力为大家解答,如果发现我内容中所写有错,欢迎指正, ...

  6. 详解聚类算法Kmeans的两大优化——mini-batch和Kmeans++

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第13篇文章,我们来看下Kmeans算法的优化. 在上一篇文章当中我们一起学习了Kmeans这个聚类算法,在算法的最后我 ...

  7. vue-element框架通过blob进行后端token权限验证下载

    在项目中,后端要求下载时要进行后端的权限验证,发现a链接进行直接下载无法满足这个需求,只能通过blob对象来进行下载操作,翻阅大量资料最后实现该功能.以下是我个人的理解,如有不足,请各位大佬多指教 / ...

  8. 小白学 Python 数据分析(21):pyecharts 好玩的图表(系列终篇)

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  9. nmap加载nse脚本在内网渗透中的使用-上

    转载自:https://mp.weixin.qq.com/s/zEgHxJEOfaiYVZYmg7NnXA? 大多数情况下,大家都认为nmap只是一个扫描工具,而不把当成是一个渗透工具.nmap集成了 ...

  10. 面试刷题24:介绍一枚 JAVA妹妹?

    java提供的自动垃圾收集机制大大提高了程序员的开发效率. 但是自动垃圾收集不是万能的,明确jvm的内存结构,工作机制是设计高扩展应用的基础. 也是诊断jvm运行时问题的必备技能. 我是李福春,我在准 ...