卓尔高考网

Python Flask 服务部署

篇首语:本文由小编为大家整理,主要介绍了Python Flask 服务部署相关的知识,希望对你有一定的参考价值。

nginx + gunicorn + flask 部署web项目

nginx 的安装和配置

一、安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
二、安装 PCRE(让 Nginx 支持 Rewrite 功能)
#下载最新版本的,注意不要用pcre2wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gztar -xvf pcre-8.42.tar.gzcd pcre-8.42 #安装编译./configuremake && make install#查看pcre版本pcre-config --version
三、安装nginx
#下载wget https://nginx.org/download/nginx-1.15.9.tar.gztar -xvf nginx-1.15.9.tar.gzcd nginx-1.15.9#编译安装./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.42 make && make install#查看版本/usr/local/webserver/nginx/sbin/nginx -v
三、nginx配置
#创建 Nginx 运行使用的用户 www/usr/sbin/groupadd www /usr/sbin/useradd -g www www# 也可以不新建用户,而是使用root用户即可#设置包含多个配置文件,在nginx.conf底部添加include vhost/*.conf;#启动/usr/local/webserver/nginx/sbin/nginx/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx/usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx# /usr/local/webserver/nginx/conf/vhost/demo.tilesrow.com.conf server                # nginx 默认监听80 端口号,可以自定义        listen 80;        #listen [::]:80;        # server_name 就是本机地址        server_name  xx.com;        # 默认访问的静态文件资源        index index.html index.htm index.php default.html default.htm default.php;        root  /data/project/demo1;        access_log  /usr/local/webserver/nginx/logs/xx.com.log;    

内网映射端口配置

server            listen 80;        #listen [::]:80;        server_name  demo.xx.com;        location /             proxy_set_header  X-Real-IP  $remote_addr;            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;            proxy_set_header Host $http_host;            proxy_redirect off;            proxy_pass http://127.0.0.1:8001;                access_log  /usr/local/webserver/nginx/logs/demo.xx.com.log;    

结果配置如下:

server    listen 8000;    server_name  192.168.123.201;    location             include uwsgi_params;        #  uwsgi_pass  127.0.0.1:9000;        proxy_pass http://127.0.0.1:9000/;   

gunicorn 的安装配置

注意下python 项目的虚拟环境下。
使用pip install gunicorn 安装 gunicorn

安装好之后就可通过命令来启停服务。

项目的启动

使用下面命令进行项目的启动
gunicorn -w 5 -b 127.0.0.1:9000 wsgi:application
其中 127.0.0.1:9000 是flask应用程序的启动端口和IP,wsgi 是项目根目录下的一个启动项目文件名为wsgi.py application 是 flask实例对象名。

或者使用自定义的gunicorn.py 配置文件
gunicorn -c app/gunicorn_config.py wsgi:application
其中.py 是自定义的配置文件

如下:

import multiprocessingbind = 0.0.0.0:9000      #绑定ip和端口号backlog = 512                #监听队列chdir = /usr/local/webserver/nginx/software_project  #gunicorn要切换到的目的>工作目录timeout = 40      #超时worker_class = gevent #使用gevent模式,还可以使用sync 模式,默认的是sync模式workers = multiprocessing.cpu_count() * 2    #进程数threads = 2 #指定每个进程开启的线程数# 设置最大并发量worker_connections = 2000# 设置进程文件目录pidfile = /var/run/gunicorn.pid

centos 使用 yum 在线安装python3

步骤:

  1. 安装epel

    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  2. 安装 epel-release 工具

    yum install epel-release
  3. 找到库里面支持的 python3 版本

    yum list | grep python3 | more
  4. 安装python3

    yum install python36
  5. 测试安装是否成功
    python3

Linux下安装Python虚拟环境Virtualenv

需要先安装好python3 的环境。
1、首先,使用pip命令安装virtualenv模块:

# pip3 install virtualenv

测试是否安装成功

# virtualenv --version

安装成功,则会打印安装的virtualenv的版本号

3、创建独立运行环境,并命名

# virtualenv --no-site-packages venv

venv是虚拟环境的名称,可以根据自己的需要进行命名。
其中 直接使用命令 virtualenv 就可以创建一个独立的Python运行环境,加上参数--no-site-packages,可以将已经安装到系统Python环境中的第三方包都不制到独立环境中,这样我们就可以得到一个不带任何第三方包的Python环境了。

4、新建的Python环境被放到了当前目录下的venv目录,有了venv这个Python环境,我们就可以开始使用这个虚拟环境了,需将其激活:

# source venv/bin/activate

需要注意的是source 虚拟环境下的bin目录下的activate ,激活成功后,我们可以看到终端命令提示符前多了虚拟环境的名称

5、如果暂时不用此虚拟环境了,退出venv环境

(venv) # deactivate

6、其他命令

# worken
# workon venv2
# deactivate
# rmvirtualenv venv

安装并配置好 python 虚拟环境 virtualenv 好 之后i,就是安装好项目所需的第三方包,就可以将项目部署到服务器上了。

以上是关于Python Flask 服务部署的主要内容,如果未能解决你的问题,请参考以下文章

您可能还会对下面的文章感兴趣: