Nginx+uwsgi+Python3.6部署Flask项目

目录

安装python3.6.6

安装flask和uwsgi

安装nginx


 

  • 安装python3.6.6

  • 由于是编译安装,所以需要确认相应的依赖包已经安
yum install -y gcc zlib* sqlite-devel libXcomposite libXcursor libXi libXtst libXScrnSaver libXrandr atk at-spi2-atk gtk3 openssl-devel
  • 下载python安装包,wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
  • 解压并进入解压文件夹,tar xvf Python-3.6.6.tar.xz && cd Python-3.6.6
  • 编译安装,依次输入以下命令
  • ./configure --prefix=/usr/local/python3 --with-ssl --enable-optimizations --enable-loadable-sqlite-extensions
  • make && make install
  • 创建python3的软连接
  • ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
  • ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
  • 输入 python3 ,显示如下说明python3.6.6安装成功

  • 输入 exit() 退出python3.6.6

  • 安装flask和uwsgi

  • 采用豆瓣源安装
  • pip3 install -i https://pypi.douban.com/simple flask
  • pip3 install -i https://pypi.douban.com/simple uwsgi
  • 创建uwsgi的软连接
  • ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
  • 配置 uwsgi
  • 在 flask 项目目录创建 uwsgi.ini 配置文件,内容如下

[uwsgi]

# uwsgi 启动时所使用的地址与端口
socket = 127.0.0.1:5001 

# 指向网站目录
chdir = [ flask项目文件夹路径 ]/ 

# python 启动程序文件
wsgi-file = manage.py 

# python 程序内用以启动的 application 变量名
callable = app 

# 处理器数
processes = 1

# 线程数
threads = 2

#状态检测地址
stats = 127.0.0.1:9191

# add uwsgi log
daemonize = [ flask项目文件夹路径 ]/uwsgi.log

# add uwsgi pid
pidfile = [ flask项目文件夹路径 ]/uwsgi.pid

  • 启动uwsgi
  • uwsgi --ini uwsgi.ini
  • 停止uwsgi
  • uwsgi --stop uwsgi.pid
  • 安装nginx

  • 下载nginx安装包
  • http://nginx.org/download/nginx-1.17.1.tar.gz
  • 解压并进入解压文件夹
  • tar zxvf nginx-1.17.1.tar.gz && cd nginx-1.17.1
  • 执行 configure 脚本,开启 http_ssl、http_mp4 http_flv 功能
  • ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_mp4_module --with-http_flv_module
  • 编译
  • make && make install
  • 启动nginx
  • nginx
  • 停止nginx 命令
  • nginx -s stop
  • 启动nginx后,在浏览器输入服务器地址,看到以下页面说明安装成功

Nginx+uwsgi+Python3.6部署Flask项目_第1张图片

  • 配置nginx
  • /usr/local/nginx/conf/nginx.conf 替换为以下内容

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;
    keepalive_timeout  65;
    
    limit_conn_zone $binary_remote_addr zone=addr:5m;
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:5001; #会转发到uwsgi监听的端口,所以务必和uwsgi保持一致
       }
        #access_log  logs/host.access.log  main;
        location ~ \.flv$ {
            flv;
        limit_conn addr 1;
        limit_rate 4096k;
            rewrite ^/static/uploads/(.+?).flv$ /[ flask项目文件夹名称 ]/[ 文件存放路径 ]/$1.flv permanent;
    }
        location ~ \.mp4$ {
            flv;
        limit_conn addr 1;
        limit_rate 4096k;
            rewrite ^/static/uploads/(.+?).mp4$ /[ flask项目文件夹名称 ]/[ 文件存放路径 ]/$1.mp4 permanent;
    }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

  • 启动uwsgi后,在浏览器地址栏输入服务器对应ip即可访问flask项目

 

 

你可能感兴趣的:(Nginx+uwsgi+Python3.6部署Flask项目)