美文网首页
flask配置生产环境

flask配置生产环境

作者: 浪尖的游鱼 | 来源:发表于2019-06-27 19:31 被阅读0次

    书接上文flask与SQLAlchemy,我们了解到

    • 如何规范flask工程的项目结构
    • 什么是ORM
    • 如何使用SQLAlchemy
    • 一些更多的有关SQLAlchemy的知识
      这一章,我们来配置flask的生产环境

    这一步的的测试可以看一个小型的资源管理站
    这里与直接上结果。

    更换HTTP解释器

    原flask使用的WSGI是python,但是很明显python作为HTTP解释器是效率低下的。而且,直接运行flask也是非常糟心的。比如集中配置,比如多进程多线程,比如socket通信,比如log管理,比如进程管理

    1.安装uWSGI

    pip3 install uwsgi
    #为常用指令建立连接
    ln -s  /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
    

    2.配置uWSGI

    #创建WSGI配置文件
    > vi wsig_conf.ini
    [uwsgi]
    chdir=/usr/local/Labtest/flask # 工程目录
    home=/usr/local/Labtest/flask/.env # 虚拟环境目录
    module=for_flask  # 启动flask应用的文件名,不用加.py
    callable=app # 应用名,与我们hell
    master=true
    #processes=2 # worker的进程个数
    chmod-socket=666
    logfile-chmod=644
    procname-prefix-spaced=for_flask # uwsgi的进程名称前缀,启动后可通过ps -ef | grep HelloWorld查找到这个进程
    py-autoreload=1 #py文件修改,自动加载,也就是设置热启动了
    #http=0.0.0.0:8080 #监听端口,测试时使用,即此处使用应该取消注释
    
    vacuum=true # 退出uwsgi是否清理中间文件,包含pid、sock和status文件
    socket=%(chdir)/uwsgi/uwsgi.sock # socket文件,配置nginx时候使用
    stats=%(chdir)/uwsgi/uwsgi.status # status文件,可以查看uwsgi的运行状态
    pidfile=%(chdir)/uwsgi/uwsgi.pid # pid文件,通过该文件可以控制uwsgi的重启和停止
    #daemonize=%(chdir)/uwsgi/uwsgi.log # 设置后台模式,然后将日志输出到uwsgi.log。当调试时,可先注释掉此内容
    

    将此文件放置在项目的根目录,并创建文件夹uwsgi

    #uwsgi 指令集
    uwsgi --ini uwsgi.ini             # 启动
    uwsgi --reload uwsgi.pid          # 重启
    uwsgi --stop uwsgi.pid            # 关闭
    

    更换代理服务器

    1.安装nginx

    详见https://www.jianshu.com/p/4c0fb2ed6083

    wget http://nginx.org/download/nginx-1.14.2.tar.gz
    tar zxvf nginx-1.14.2.tar.gz
    cd nginx-1.14.2/
    ./configure --prefix=/usr/local/nginx-1.14.2 --with-pcre \
    --with-http_ssl_module --with-http_gzip_static_module \
    --with-http_stub_status_module
    #前置安装已经安装好了所有的关联项,若有报错直接复制对应的程式搜索即可
    make & make install
    #建立连接
    ln -s /usr/local/nginx-1.14.2/sbin /usr/bin/nginx
    

    flask+uWSGI已经能实现webserver的功能了,但是更加优秀的weberver还需要nginx的辅助。
    Nginx(发音同engine x)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。

    2.配置nginx

    #修改nginx的配置文件
            location / {
                    include uwsgi_params;
                    uwsgi_pass unix:/???/uwsgi/uwsgi.sock;
            }
    > nginx -s reload
    #重启nginx服务
    
    

    还有写拓展处理主要看服务配置
    这里nginx -s reload已经完成了服务配置。如果不想配置服务,直接到nginx根目录运行./sbin/nginx

    HTTPS

    这里给大家推荐一个不错的平台:Cloudflare
    Cloudflare
    在使用之前我们需要更换自己的顶级域名代理商,这一步此处以腾讯云截图:

    腾讯云

    跳过注册等过程,我们直接进入域名管理界面,看到


    Crypto

    然后创建密钥


    创建密钥
    然后复制两个密钥
    分别命名为

    xxx.pem
    xxx.key
    再扔到服务器上去。
    最后再配置nginx

        # HTTPS server
        #
        server {
            listen       443 ssl;
            server_name  localhost;
    
            ssl_certificate      xxx/ocango.cn.pem;
            ssl_certificate_key  xxx/ocango.cn.key;
    
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
    
            location / {
                    include uwsgi_params;
                    uwsgi_pass unix:/???/uwsgi/uwsgi.sock;
            }
        }
    
    

    总结配置flask一般形态的生产环境nginx+uwsgi+flask

    回到目录

    相关文章

      网友评论

          本文标题:flask配置生产环境

          本文链接:https://www.haomeiwen.com/subject/jzzkcctx.html