zoukankan      html  css  js  c++  java
  • 在ubuntu上通过nginx + uwsgi 运行 flask

    安装nginx:

    apt-get install nginx
    #如果是使用本机安装测试,由于默认不是最高权限使用以下命令即可:
    sudo apt-get install nginx 

    安装uwsgi:

    pip install uwsgi
    #查看是否安装成功
    uwsgi --version

    配置nginx:

    cd /etc/nginx/conf.d
    vim conf_name.conf <创建一个配置文件,名字随便起>
    #如果没有权限 切记:
    sudo vim conf_name.conf

    nginx配置内容:

    server { 
       listen
    80; #监听服务器的80端口 server_name 127.0.0.1; #你的域名,前提是你要将你的域名解析到你的服务器的ip地址 charset utf-8; location / { include /etc/nginx/uwsgi_params; #添加uwsgi参数 uwsgi_pass 127.0.0.1:5000; #你的Flask应用运行端口,和上面的对应
        # uwsgi_param UWSGI_CHDIR /flask; //项目根目录
    # uwsgi_param UWSGI_SCRIPT manage:app; //启动项目的主程序(在本地上运行
    //这个主程序可以在flask内置的
    //服务器上访问你的项目)
         #
         # harakiri-verbose = true
    # harakiri = 300 # 堵塞排队等候的进程数量
    # post-buffering = 65536 # 不设置会导致上传大文件失败
    # buffer-size = 65536
    }
    } }
    # *注:公司的服务器可能需要对外开放 80 端口才能实现本地远程访问

    #!!! 天坑 nginx 配置后有个自带的配置 一定要关掉/etc/nginx/sites-enabled 的 default 文件里面的 server 都 注销掉 !!!
    注销掉 !!! 注销掉 !!!
    
    

    配置uwsgi:

    [uwsgi]
    # socket = 127.0.0.1:5000 #如果要改端口,记得和上面nginx配置的uwsgi_pass 端口一定要一致 
    socket = 0.0.0.0:5000 #监控公网
    ;将Flask应用运行在这个端口
    master = true  
    wsgi-file = main_app.py # flask项目的文件名字
    ;后端文件名称
    callable = app
    ;设置在收到请求时,uWSGI加载的模块中哪个变量将被调用,默认是名字为“application”的变量。即是: app = Flask(__name__) 
    processes = 8  
    threads = 2
    daemonize = server.log 
    ;日志保存文件名称 【位置默认在app.ini 目录下】
    harakiri-verbose = trueharakiri = 300 # 堵塞后链接进程的缓存数量
    post-buffering = 65536 # 不设置会导致上传大文件失败
    buffer-size = 65536
    ;post-buffering=131072 # 128K
    ;post-buffering-busize=65536 # 64K
    pidfile = uwsgi.pid

    启动Nginx

    # 如果以及启动可以直接重启
    service nginx start #启动nginx
    #或则 service nginx restart 重启nginx# 平滑重启 切刀nginx的目录下
    nginx -s reload
    # 注意的坑:
    lient_max_body_size 500m;
    
    web服务器提示Request Entity Too Large” (413),client_max_body_size,默认1m
    
    另外,其他几个参数也要注意:
    nginx.conf
    #keepalive_timeout 60;
    #send_timeout 3m;
    client_max_body_size 500m;

    启动uwsgi

    #通过uwsgi配置文件启动 flask
    uwsgi <自己命名的写好uwsgi配置的文件名>.ini
    或者
    uwsgi -d --ini test.ini # <自己命名的写好uwsgi配置的文件名>.ini
    uwsgi --ini uwsgi.ini
    # 结束进程任务
    uwsgi --stop uwsgi.pid
    # 暴力杀死
    sudo pkill -f uwsgi -9
    # 重启 uwsgi
    uwsgi --reload uwsgi.pid
    #查看进程
    ps aux | grep uwsgi
  • 相关阅读:
    leetcode:Power of Two
    求二进制中1的个数
    leetcode:Contains Duplicate和Contains Duplicate II
    leetcode:Summary Ranges
    leetcode Database1(三)
    c++作业:使用函数调用的方法,实现求两个整数中大的数的程序。
    Java制作桌面弹球下载版 使用如鹏游戏引擎制作 包含2个精灵球同时弹动
    Java动画 重力弹球 如鹏游戏引擎 精灵 设计一个小球加速落地又减速弹起并反复直到停止的Java程序
    为什么方差的分母有时是n,有时是n-1 源于总体方差和样本方差的不同
    计算机应用第三次作业:自动开机自动关机 常用DOS命令 关于文件文件夹
  • 原文地址:https://www.cnblogs.com/presleyren/p/15689208.html
Copyright © 2011-2022 走看看