• Centeos7部署Flask+Gunicorn+nginx


    一.环境安装

      pip3 install flask

      pip3 install gunicorn

      pip3 install nginx

    二.模块介绍

      1.Flask是一个使用 Python 编写的轻量级 Web 应用框架 

      2.gunicorn是一个python Wsgi http server,只支持在Unix系统上运行,来源于Ruby的unicorn项目。Gunicorn使用prefork master-worker模型(在gunicorn中,master被称为arbiter),能够与各种wsgi web框架协作。

      3.Nginx (engine x) 是一个高性能的HTTP反向代理服务

    三.Centeos7部署 

          1.使用gunicorn代替flask自带服务

        启动方式为 gunicorn -w 4 -b 0.0.0.0:5100 Flask:app     开启4进程端口为5100 (几核开几进程)

        可以自己配置gunicorn用配置文件启动,

        也可以在flask服务运行目录自建脚本run_gunicorn.py,代码如下

        

    import re
    import sys
    from gunicorn.app.wsgiapp import run
    if __name__ == '__main__':
      sys.argv[0] = re.sub(r'(-script/.pyw|/.exe)?$','',sys.argv[0])
      sys.exit(run()) 

        启动方式  python3 run_cunicorn -w 4 -b 0.0.0.0:5100 Flask:app

        gunicorn默认使用同步阻塞的网络模型(-k sync),对于大并发的访问可能表现不够好,可以使用gevent 或 meinheld    python3 run_cunicorn -w 4 -b 0.0.0.0:5100 -k gevent Flask:app (这里使用gevent)

        后台启动 nohup 启动程序命令 &

        2.nginx安装目录为  /etc/nginx

        vi /etc/nginx/nginx.conf

        配置监听端口为80 server_name为使用域名

        location反向代理设置为flask项目部署的公网ip+端口   例如192.16.1.1:5100

            可以只想多个地址

       下面附上我的配置

    worker_processes  1;
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
        keepalive_timeout  65;
    
         upstream servers{
            server 121.198.10.158:5100; #指向地址  自己更改 可以有多个
            server 130.55.74.217:5100;
        }
        server {
            listen       80; #监听本地80端口,注意端口冲突   
        
            server_name 域名;  #域名   也可以是 本机ip   可以使用本机 ip+端口 访问
    
            location / {
                proxy_pass http://servers; #指向servers
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
        }
    }

    检测端口是否占用:   端口冲突会导致nginx错误

       netstat  -anp  |grep 端口号     

    查看防火墙状态:     (防火墙一定要关)

      [root@centos6 ~]# service iptables status

      iptables:未运行防火墙。

    开启防火墙:

      [root@centos6 ~]# service iptables start

    关闭防火墙:

      [root@centos6 ~]# service iptables stop

     

      

  • 相关阅读:
    支付宝支付
    七牛云存储介绍
    ubuntu开发机初始化
    Unity3D 正六边形,环状扩散,紧密分布,的程序
    Unity属性的封装、继承、方法隐藏
    DateTime.Now的一些用法
    [转] 增强现实 colAR Mix 浅析
    [转] Vuforia AR 中的阴影与浮现效果
    网址整理
    [转] 如何使用unity Vs来进行断点调试
  • 原文地址:https://www.cnblogs.com/lyxdw/p/9871655.html
Copyright © 2020-2023  润新知