文章目录

前言

一、nginx的安装

  • 1.安装nginx的依赖环境gcc-c++、openssl、pcre、zlib
  • 2.下载编译nginx
  • 此处可能报错
  • 此处可能报错
  • 3.nginx的配置
  • 二、 gunicorn的安装和使用
  • 1.安装gunicorn
  • 2.使用gunicorn启动项目app
  • 扩展


前言

在这章介绍在centos7系统中如何使用nginx和gunicorn来部署flask项目。

一、nginx的安装

在安装之前先看系统中有没有nginx,如有则将有关文件全部删除。

whereis nginx

1.安装nginx的依赖环境gcc-c++、openssl、pcre、zlib

1.安装gcc-c++编译器和openssl

yum install gcc-c++
yum install -y openssl openssl-devel

2.安装pcre包

yum install -y pcre pcre-devel

3.安装zlib包

yum install -y zlib zlib-devel

2.下载编译nginx

然后在/usr/local下新建目录nginx

cd /usr/local #进入目录
mkdir nginx #新建目录

然后进入nginx目录

cd /usr/local/nginx

然后去官网下载nginx文件,点击nginx官网下载

nginx搭建flv流 nginx部署flask_flask

选择稳定版下载,并且将文件放入nginx文件夹中。

然后进入nginx文件夹中,对压缩包进行解压

tar -zxvf nginx-1.22.0.tar.gz

输入ls查看nginx下的文件,可以看到

nginx搭建flv流 nginx部署flask_ico_02

然后进入nginx-1.22.0文件夹下。

使用nginx的默认配置

./configure

此处可能报错

nginx搭建flv流 nginx部署flask_flask_03

执行下面命令在解决问题

yum -y install gcc gcc-c++ autoconf automake make

然后再次输入nginx 的默认配置就可以正常执行了,执行结束之后输入make进行编译。

make

此处可能报错

安装nginx报错:make: *** 没有规则可以创建“default”需要的目标“build”。 停止。 安装如下依赖之后,再次执行./configure和make就可以正常编译了。

yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel

然后进入sbin目录

cd /usr/local/nginx/sbin

加载文件

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

重新加载并启动Nginx

./nginx -s reload

查看是否启动成功

ps -ef | grep nginx

nginx搭建flv流 nginx部署flask_nginx搭建flv流_04

启动成功。

此时需要在阿里云上打开80端口,然后在网站输入:阿里云公网ip:80,就可以看到如下界面。

nginx搭建flv流 nginx部署flask_阿里云_05

至此nginx安装完成。

3.nginx的配置

要想使用nginx部署flask项目必须对nginx进行合理的配置。

进入conf文件夹

cd /usr/local/nginx/conf

打开nginx.conf文件

vim nginx.conf

配置文件参考如下参数。

server {
        listen       80;  #端口号
        server_name  39.107.121.34;  #阿里云公网ip
        server_name localhost;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
           # root   /tmp/pycharm_project_527/static;
            index  index.html index.htm;
            proxy_pass http://127.0.0.1:5000/;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

进入sbin文件夹下

cd /usr/local/nginx/sbin

然后重新加载nginx配置文件使其生效

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

重新加载并启动Nginx

./nginx -s reload

此时完成了nginx 的安装和配置。

二、 gunicorn的安装和使用

1.安装gunicorn

在为项目创建anaconda环境中安装gunicorm包

pip install gunicorn

2.使用gunicorn启动项目app

第一个app是app所在.py文件的名字

gunicorn -w 4 -b 127.0.0.1:5000 app:app

启动成功,就可以远程访问网页了


扩展

在我的项目中,因为是要上传视频文件进行分析,因此需要在nginx.conf文件中进行额外的配置,如下,此处自行学习理解

large_client_header_buffers 4 16k;
    client_max_body_size 300m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 600;
    proxy_read_timeout 600;
    proxy_send_timeout 600;
    proxy_buffer_size 64k;
    proxy_buffers   4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;