当网站开发完成之后,并不能让所有人可以访问。是因为现在项目放在本地,你的本地IP不是一个所有人请求到的IP

如何让自己的Flask项目跑在互联网上

配置服务

Flask确实自带开发服务器,但是这个服务器只能支持200并发。性能太差,可以用于开发,不可以用于工作,所以需要进行工作服务器部署。

目前,各位同学需要掌握的是部署的流程,具体的细节不必在意。

一、使用环境

Centos7 + Python3.7

二、Centos 中 Python2和Python3共存

Centos7系统默认携带Python2.7版本,我们开发项目通常用的是Python 3.7版本,所以需要在服务器上搭建Python 2和Python 3共存环境。

(一)安装Python3

注意所有操作要在root权限下进行

1、安装依赖

yum install zlib-devel libffi-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc* make -y

2、下载Python3安装包

3、解压tar包

注意所有安装包都要放在/opt目录下面

tar -Jxvf Python-3.7.2.tar.xz

推荐使用FileZilla往centos7中传输文件

4、编译安装

进入解压目录

./configure prefix=/usr/local/python3

make && make install

5、创建软连接

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

三、项目部署

(一)安装Flask环境

1、导出Flask的开发环境

pip freeze > package.txt

2、将包⽬录上传服务器,并进⾏安装

将package.txt,放在 /opt⽬录下

安装 pip3 install -r package.txt

安装过程中出现超时错误:更换下载源 pip3 install -r package.txt -i 源地址

(二)启动Flask项目

1、上传Flask项⽬

将Flask项⽬放在 /opt⽬录下

项⽬测试

运行项目

修改项目中的main.py

添加指令

启动项目

python3 main.py run

systemctl stop firewalld 关闭防火墙

3)访问项目,只能在linux系统中进行访问

使用服务器ip

访问结果

(三)uWSGI

Nginx 本身不支持Flask框架和Django框架,部署需要使用uWSGI转接Nginx服务器

uWSGI本身也是也是一个Web服务器,但是处理并发能力不强

1、安装uWSGI

pip3 install uwsgi

2、创建软连接

ln /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

(四)Nginx

整个项目依托于nginx运行!!!

1、下载Nginx包

2、安装Nginx

1)解压

tar -zxvf nginx-1.12.2.tar.gz

2)编译安装

进入解压目录安装

cd nginx-1.12.2

./configure

make && make install

3)创建软链接

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

4)启动nginx查看效果

nginx 启动nginx

浏览器访问centos7的ip查看

如下图所示表示nginx启动成功

image.png

nginx常用指令:

指令

意义

nginx

启动nginx

nginx -s stop

停止nginx

nginx -s reload

重启nginx

nginx -t

检测是否正确

(五)Flask+ uWSGI + Nginx 部署

1、uWSGI配置文件

先配置uWSGI

在opt下创建scripts目录,编写uWSGI配置文件

image.png

配置文件中的内容

文件内容

含义:

socket uwsgi启动的地址和端口

pythonpath 项目的目录

module 项目控制文件名(不加py)

wsgi-file 项目的控制文件目录

callable 是控制文件当中app的名称

2、Nginx配置文件

进入配置文件目录

文件备份

2)进⾏配置⽂件备份

image.png

3)Nginx配置文件修改

具体配置如下: vim nginx.conf

修改nginx配置文件

4)启动项目

启动uWSGI:

指令:cd /opt/scripts

uwsgi --ini uwsgi.ini

启动Nginx

指令:nginx

5)访问项目

可以直接在其他主机上访问该项目

image.png