Flask项目Nginx部署

首先我们需要准备服务器环境,这里暂时没有云主机,我们使用虚拟机进行部署,服务器系统采用Centos7。开始flask项目部署

一、项目环境部署并进行flask方式启动测试

1、Centos7安装python3.5环境
详情安装教程请访问Centos7 下安装python3及卸载

2、关闭防火墙及Selinux(仅测试使用,项目上线必须开启指定端口)

centos部署vulhub_centos部署vulhub


3、测试ip网络通信

centos部署vulhub_nginx_02

4、windows 中导出flask沙箱环境安装包

centos部署vulhub_Nginx_03


5、将flask项目导入到Centos服务器下

centos部署vulhub_centos部署vulhub_04


centos部署vulhub_Nginx_05

6、根据之前导出的安装包package.txt进行服务器flask环境安装

pip3 install -r package.txt

centos部署vulhub_Nginx_06


centos部署vulhub_flask+uwsgi+nginx部署_07


7、启动flask自带的服务器,进行测试

python3 manage.py runserver --host 0.0.0.0

centos部署vulhub_nginx_08


访问测试成功:

centos部署vulhub_nginx_09

二、部署uwsgi+Nginx环境

1、安装uwsgi

pip3 install uwsgi

centos部署vulhub_Nginx_10


2、创建uwsgi软链接并测试

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

centos部署vulhub_flask_11


3、创建uwsgi配置文件目录script

centos部署vulhub_centos部署vulhub_12


4、创建并编写uwsgi.ini配置文件

#uwsgi.ini
[uwsgi]
socket = 10.10.21.130:5000 # uwsgi 启动时所使用的地址与端口
pythonpath = /opt/FlaskStudentBluePrint # flask项目目录
module = manage # 使用的模板
wsgi-file = /opt/FlaskStudentBluePrint/manage.py # 指定flask运行文件
callable = app # python 程序内用以启动的 application 变量名
processes = 4 # 4进程
threads = 2 # 2线程
daemonize = /opt/script/uwsgi.log # 指定uwsgi日志文件
buffer-size = 32768 # 指定uwsgi默认buffer,否则可能出现nvalid request block size: 4161 (max 4096)...skip

centos部署vulhub_Nginx_13


5、启动uwsgi查看测试效果,当前启动uwsgi不能直接访问,需部署nginx

uwsgi --ini uwsgi.ini

centos部署vulhub_nginx_14


6、下载Nginx tar包

wget -c https://nginx.org/download/nginx-1.12.2.tar.gz

centos部署vulhub_flask_15


7、解压并进行编译安装配置

tar -zxvf nginx-1.12.2.tar.gz
./configure \

centos部署vulhub_Nginx_16


8、编译安装Nginx

make && make install

centos部署vulhub_flask+uwsgi+nginx部署_17


8、配置Nginx软链接

ln -s /usr/local/nginx/sbin/nginx  /usr/bin/nginx

centos部署vulhub_centos部署vulhub_18


9、启动Nginx,测试

centos部署vulhub_nginx_19


centos部署vulhub_flask+uwsgi+nginx部署_20

三、配置Nginx服务器,启动flask项目

1、备份Nginx配置文件

centos部署vulhub_Nginx_21


2、打开配置文件,进行配置

server {
        listen       80;
        server_name  FlaskStudentBluePrint;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        access_log /opt/script/flask.log;
        error_log /opt/script/flaskError.log;

        location / {
            include uwsgi_params;# 导入uwsgi配置 
            uwsgi_pass 127.0.0.1:5000;# 转发端口,需要和uwsgi配置当中的监听端口一致

            uwsgi_param UWSGI_CHDIR /opt/FlaskStudentBluePrint;# 项目根目录
            uwsgi_param UWSGI_SCRIPT manage:app;# 项目的主程序,比如你测试用manage.py文件,文件中app = Flask(__name__),那么这里就填manage:app
        }

centos部署vulhub_flask_22


centos部署vulhub_centos部署vulhub_23

3、启动nginx和uwsgi,测试启动项目效果

centos部署vulhub_centos部署vulhub_24


测试成功:

centos部署vulhub_flask+uwsgi+nginx部署_25