24小时在线平台

当前位置: 24小时在线平台 > 部署教程大全 > 文章页

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

时间:2025-05-12 04:51来源: 作者:admin 点击: 13 次
本次项目我利用flask写了接口需要部署到服务器供前端使用,一路走来爬了很多坑,所以这一次做了详细的记录,从零开始教大家将flask项目跑起来

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

2022-11-05 2300

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介: 本次项目我利用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 :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,所以可以直接访问:

在这里插入图片描述

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2025-06-27 01:06 最后登录:2025-06-27 01:06
栏目列表
推荐内容