flask+nginx+uwsgi部署服务器(详细保姆级教程)

简介: 本次项目我利用flask写了接口需要部署到服务器供前端使用,一路走来爬了很多坑,所以这一次做了详细的记录,从零开始教大家将flask项目跑起来

概要

本次项目我利用flask写了接口需要部署到服务器供前端使用,一路走来爬了很多坑,所以这一次做了详细的记录,从零开始教大家将flask项目跑起来

准备工作

服务器

首先部署需要一台服务器,推荐大家使用腾讯云或者阿里云的服务器,我这里使用的是centos7.5版本的阿里云服务器,然后设置安全组信息,我这里开放了一个5656端口
在这里插入图片描述

Xshell

还需要一个模拟服务器终端的连接软件方便操作,我使用的是Xshell,大家可以自行去下载,网上资源很多,然后打开软件新建链接连接服务器,如图所示状态,输入指令可以查看服务器文件,就算连接成功啦
在这里插入图片描述

Xftp 7

为了传输文件方便,我这里使用的是Xftp7,可以直接拖动文件上传到服务器,大家自己下载,可视化软件很多选择顺手的即可

部署flask

方案选择

我才用的是nginx+uwsgi+flaks的部署方案,这里也是给大家详细介绍这一种,下面我们开始进行部署

python3安装

要编译flask文件当然要在服务器内进行python的配置

which python
mkdir /usr/local/python3 
cd /usr/local/python3

安装依赖

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

安装python3

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

这种方式可能比较慢,大家也可以自行在上面网址下载安装包,然后上传安装包到服务器

解压压缩包

tar -xvJf  Python-3.6.2.tar.xz
cd Python-3.6.2
./configure --prefix=/usr/local/python3
make && make install

创建软链接

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

此时在服务器输入python3,出现如下代表安装成功,输入exit()回车 退出
在这里插入图片描述## flask
将要运行的flask文件放置root文件夹下
安装flask,进入目录,运行文件

pip3 install flask
cd /root/firstdemo
python3 app.py

运行成功后,然后通过服务器公网访问,如图,输入 ctrl+c 可停止运行,到此表示服务器python编译环境安装成功
在这里插入图片描述

安装uwsgi

安装

pip3 install uwsgi
find / -name uwsgi
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

安装nginx

安装nginx的详细步骤见我的另一篇文章,点我查看

nginx和uwsgi的配置

配置nginx

至此我默认大家已经完成了nginx的安装,下面进行nginx 的配置
进入到nginx目录下的conf文件夹

/usr/local/nginx/conf

可以看到有一个叫 nginx.conf 的配置文件,在里面进行相关的文件配置
文件里面默认的代码很多,下面我将我的配置精简如下:

worker_processes  4;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
  
   server {
        listen 80;   // 监听的端口,默认为80端口
        server_name 47.108.xxx.180;  //  这里写服务器公网ip
        location / {
                proxy_pass http://127.0.0.1:5000;    
                // 需要代理的地址,我的项目启动地址是这个
            }
    
     }   
}

弄好配置文件然后就可以启动nginx了,nginx的启动停止的操作在 点我查看 一文中有说明。

配置uwsgi

下面开始配置uwsgi相关的东西,首先进入我们的项目文件夹
在项目文件夹中创建一个名为 uwsgi.ini 的文件

cd /root/firstdemo  //进入项目文件夹
vi uwsgi.ini //输入就自动创建了文件并进入了编辑模式

也可以直接用可视化工具操作
在这里插入图片描述下面开始配置uwsgi文件,附上我的文件信息,关键信息写了注释,其他的根据需求配置,自行去查看作用,此处不作详解

[uwsgi]
http-socket = 127.0.0.1:5000  // 启动地址
chdir = /root/firstdemo  // 项目地址
wsgi-file = app.py  // 项目的启动文件
callable = app
processes = 2
threads = 10
buffer-size = 32768
master = true
daemonize=flaskweb.log  // 日志文件保存在falskweb.log中
pidfile=uwsgi.pid

配置完成之后,在项目的根目录下就可以启动 uwsgi 了,下面附上uwsgi的相关操作指令

uwsgi --ini uwsgi.ini             // 启动
uwsgi --reload uwsgi.pid   // 重启

进入目录,输入指令启动uwsgi,如下代表启动成功

在这里插入图片描述

部署成功

启动成功后,我们就可以用浏览器通过服务器公网访问啦
因为前面nginx配置中我们直接把启动地址放在了 location/ 中,也就是将127.0.0.1:5000直接转发到了公网ip,所以可以直接访问:
在这里插入图片描述

相关文章
|
1月前
|
弹性计算 Linux Windows
跨账号和同账号的ECS云服务器之间迁移教程
跨账号和同账号的ECS云服务器之间迁移教程
|
30天前
|
弹性计算 网络安全
阿里云国际OpenAPI多接口快速管理ECS服务器教程
阿里云国际OpenAPI多接口快速管理ECS服务器教程
|
20天前
|
弹性计算 安全 网络安全
阿里云服务器租用流程,四种阿里云服务器租用方式图文教程参考
阿里云服务器可以通过自定义租用、一键租用、云市场租用和活动租用四种方式去租用,不同的租用方式适合不同的用户群体,例如我们只是想租用一款配置较低且可以快速部署应用的云服务器,通常可以选择一键租用或者云市场租用,本文为大家展示不同租用方式的适合对象以及租用流程,以供初次租用阿里云服务器的用户参考和选择。下面是阿里云服务器租用的图文操作步骤。
|
23天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
191 2
|
28天前
|
弹性计算 开发框架 .NET
阿里云服务器购买教程及云服务器地域、实例、操作系统、带宽等参数选择指南
对于初次购买阿里云服务器的用户来说,想使用阿里云服务器搭建网站或者运行APP、小程序等项目,第一步就是要先购买阿里云服务器,下面小编以图文形式给大家介绍一下阿里云服务器的购买流程,以及购买过程中如何云服务器地域、实例、带宽等关键配置和选择这些参数的一些注意事项,以供参考。
|
1月前
|
域名解析 网络协议 数据安全/隐私保护
阿里云轻量应用服务器搭建WordPress个人博客教程
阿里云轻量应用服务器搭建WordPress个人博客教程
|
1月前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
80 0
Mac os 安装 nginx 教程(success)
|
1月前
|
Ubuntu 安全 Linux
云服务器安装宝塔教程
云服务器安装宝塔教程
|
1月前
|
中间件 应用服务中间件 nginx
Nginx+uWSGI+Django原理
Nginx+uWSGI+Django原理
|
1月前
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
105 0