博客
关于我
如何在 CentOS 6.5 上部署 Flask
阅读量:687 次
发布时间:2019-03-17

本文共 2192 字,大约阅读时间需要 7 分钟。

#在CentOS 6.5中部署Flask

在实际开发过程中,Flask内置的Web服务器已经能够满足日常需求,但在移动到服务器上时,需要使用符合WSGI协议的专用Web服务器。Nginx + uWSGI是最常见的组合之一。网络上有大量教程,但大多仅提供命令而未深入解释关键点。本文将详细介绍在CentOS 6.5上部署Flask的完整过程,并强调一些关键要点。

##安装Python 3.6

CentOS 6.5自带的Python版本为2.6.6。为了避免与系统默认Python冲突,我们使用virtualenv来隔离Python 3.6的环境。

###安装步骤

  • 下载Python 3.6.1:

    wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
  • 解压并安装:

    tar xJf Python-3.6.1.tar.xz
    cd Python-3.6.1
    ./configure --prefix=/usr/local/python3
    make
    make install
  • 创建软链接:

    ln -s /usr/local/python3/bin/python3 /usr/bin/python3
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
  • 确保创建了python3和pip3的软链接,以区分Python 2和Python 3。接下来需要使用Python 3的pip来安装virtualenv。

    ##安装virtualenv

    安装virtualenv以管理Python包:

    pip3 install virtualenv

    ##创建Python虚拟环境

    在指定目录下创建虚拟环境,例如~/py36venv

    /usr/local/python3/bin/virtualenv -p /usr/bin/python3 venv

    取得虚拟环境后,进入该目录并激活它:

    source venv/bin/activate

    激活后,关闭虚拟环境的方法是:

    deactivate

    ##安装Flask

    在虚拟环境中安装Flask:

    pip install flask

    ##安装Nginx

    Nginx有两种安装方式:使用yum和源码安装。这里使用yum安装:

    yum install nginx

    如果yum install nginx失败,请先安装EPEL:

    # CentOS Linux v6.x用户运行以下命令:
    wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
    rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm

    ##查看Nginx配置

    确认Nginx版本和配置:

    nginx -V

    Nginx的主配置文件在/etc/nginx/nginx.conf,内容包括:

    include /etc/nginx/conf.d/*.conf;

    这表示Nginx会加载/etc/nginx/conf.d下的所有配置文件。接下来我们将创建支持WSGI的配置文件。

    ##启动和停止Nginx

    # 启动
    service nginx start
    # 停止
    service nginx stop
    # 重新启动
    service nginx restart
    # 重新加载
    service nginx reload

    启动后,访问http://localhost查看初始界面。

    ##在虚拟环境中安装uWSGI

    安装uWSGI:

    pip install uwsgi

    ##测试uWSGI

    创建一个测试文件test.py

    def application(env, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return [b'Hello World']

    运行uWSGI测试:

    uwsgi --http :9090 --wsgi-file test.py

    在浏览器中输入http://localhost:9090,如果能显示Hello World,说明uWSGI配置正确。

    ###uWSGI启动配置

    config.ini中配置:

    [uwsgi]
    socket = 127.0.0.1:8001
    chdir=/root/flask_restful_mysql
    wsgi-file=manage.py
    callable=app
    processes=4
    threads=2
    buffer-size=32768
    stats=127.0.0.1:9191

    启动uWSGI并保持运行:

    nohup uwsgi config.ini &

    关闭SSH时,不要忘记终止uWSGI进程:

    killall -9 uwsgi

    查看进程:

    ps -ef | grep uwsgi

    ##源代码如何上传到Linux

    通过WinSCP等工具将源代码上传或使用自动化工具如Fabric来实现持续部署。这个部分不在本文详细展开。

    转载地址:http://qpthz.baihongyu.com/

    你可能感兴趣的文章
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    Nginx 结合 consul 实现动态负载均衡
    查看>>
    Nginx 负载均衡与权重配置解析
    查看>>
    Nginx 负载均衡详解
    查看>>
    nginx 配置 单页面应用的解决方案
    查看>>
    nginx 配置https(一)—— 自签名证书
    查看>>
    nginx 配置~~~本身就是一个静态资源的服务器
    查看>>
    Nginx 配置清单(一篇够用)
    查看>>
    Nginx 配置解析:从基础到高级应用指南
    查看>>
    nginx+php的搭建
    查看>>
    nginx+tomcat+memcached
    查看>>
    nginx+Tomcat性能监控
    查看>>
    nginx+uwsgi+django
    查看>>
    Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流
    查看>>
    Nginx下配置codeigniter框架方法
    查看>>
    Nginx之二:nginx.conf简单配置(参数详解)
    查看>>
    Nginx代理websocket配置(解决websocket异常断开连接tcp连接不断问题)
    查看>>
    Nginx代理初探
    查看>>
    nginx代理地图服务--离线部署地图服务(地图数据篇.4)
    查看>>
    Nginx代理外网映射
    查看>>