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,所以可以直接访问:
在这里插入图片描述

相关文章
|
9天前
|
Ubuntu 应用服务中间件 网络安全
Nginx伪流媒体服务器搭建详细说明以及案例
Nginx伪流媒体服务器搭建步骤如下:1. 安装Nginx,根据系统选择命令;2. 编辑配置文件(/etc/nginx/nginx.conf),添加mp4相关设置;3. 创建视频目录/usr/share/nginx/html/videos并上传视频;4. 重启Nginx应用更改;5. 通过浏览器访问视频,如http://your_server_ip/videos/example.mp4。注意启用mp4模块,确保视频格式支持伪流媒体播放。
|
1月前
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
4月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
279 61
|
3月前
|
弹性计算 负载均衡 网络协议
ECS中实现nginx4层7层负载均衡和ALB/NLB原SLB负载均衡
通过本文的介绍,希望您能深入理解并掌握如何在ECS中实现Nginx四层和七层负载均衡,以及如何使用ALB和NLB进行高效的负载均衡配置,以提高系统的性能和可靠性。
308 9
|
3月前
|
存储 编解码 应用服务中间件
使用Nginx搭建流媒体服务器
本文介绍了流媒体服务器的特性及各种流媒体传输协议的适用场景,并详细阐述了使用 nginx-http-flv-module 扩展Nginx作为流媒体服务器的详细步骤,并提供了在VLC,flv.js,hls.js下的流媒体拉流播放示例。
392 2
|
弹性计算 前端开发 关系型数据库
利用云服务器ECS部署flask的心得
部署flask项目的一些心得
|
2天前
|
域名解析 人工智能 弹性计算
DeepSeek服务器繁忙解决方法:使用阿里云一键部署DeepSeek个人网站!
通过阿里云一键部署DeepSeek个人网站,解决服务器繁忙问题。学生用户可领取300元代金券实现0成本部署,普通用户则可用99元/年的服务器。教程涵盖从选择套餐、设置密码到获取百炼API-KEY的全流程,助您快速搭建专属大模型主页,体验DeepSeek、Qwen-max、Llama等多款模型,无需代码,最快5分钟完成部署。支持绑定个人域名,共享亲友使用,日均成本仅约1元。
36 10
|
12天前
|
弹性计算 运维 监控
【阿里云】控制台使用指南:从创建ECS到系统诊断测评
本文介绍了如何通过阿里云获取ECS云服务器并进行操作系统配置与组件安装,以实现高效的资源管理和系统监控。阿里云凭借强大的基础设施和丰富的服务成为用户首选。文中详细描述了获取ECS、RAM授权、开通操作系统控制台及组件安装的步骤,并展示了如何利用控制台实时监控性能指标、诊断系统问题及优化性能。特别针对idle进程进行了深入分析,提出了优化建议。最后,建议定期进行系统健康检查,并希望阿里云能推出更友好的低成本套餐,满足学生等群体的需求。
78 17
【阿里云】控制台使用指南:从创建ECS到系统诊断测评
|
9天前
|
人工智能 运维 数据可视化
玩转云服务器——阿里云操作系统控制台体验测评
在云服务器日益普及的背景下,运维人员对操作系统管理工具的要求不断提高。我们需要一款既能直观展示系统状态,又能智能诊断问题,提供专业指导的控制台。阿里云操作系统管理平台正是基于API、SDK、CLI等多种管理方式,致力于提升操作效率,为用户带来全新的系统运维体验。阿里云操作系统控制台凭借便捷易用的设计和高效的管理功能,成为云服务器运维的强力助手。本次测评基于真实体验截图,对其整体表现进行了深入探索。
69 33
|
13天前
|
弹性计算 Linux 数据安全/隐私保护
阿里云幻兽帕鲁联机服务器搭建全攻略,速来抄作业!2025新版教程
阿里云提供2025年最新幻兽帕鲁服务器申请购买及一键开服教程。4核16G配置支持8人,70元/月;8核32G配置支持20人,160元/月。选择配置、地域、操作系统后,点击【一键购买及部署】,约3分钟完成创建。本地安装STEAM客户端并登录,进入游戏选择多人模式,输入服务器IP和端口(8211),即可开始游戏。详细教程及更多问题解答请参考阿里云幻兽帕鲁游戏专区。
62 20