centos怎么使用Nginx部署flask应用(nginx配置flask)

centos怎么使用Nginx部署flask应用(nginx配置flask)

浏览次数:
信息来源: 用户投稿
更新日期: 2026-01-22
文章简介

不需要使用sudo,因为virtualvenv没有权限要求。上传项目文件博主使用的linux连接工具是xshell,在之前的一篇文章中有讲如何上传文件到linux主机,这里不再详细说明,展示一下

2025阿里云双十一服务器活动

不需要使用sudo,因为virtualvenv没有权限要求。

上传项目文件

博主使用的linux连接工具是xshell,在之前的一篇文章中有讲如何上传文件到linux主机,这里不再详细说明,展示一下大概的项目结构以及启动文件manage.py

tree命令可以以树形图的形式展示文件结构,可以赋予参数设置树的深度,这里博主展示了2层安装命令:

#!/usr/local/flasky/venvpython

fromflask_scriptimportmanager,shell

app=create_app(os.getenv('flask_config')or'default')

manager.add_command("shell",shell(make_context=make_shell_context))

"""rundeploymenttasks."""

#app.run()

命令行运行flask项目

以上命令一般都是在开发环境进行调试的时候使用,或者注释掉“manager.run()”,使用“app.run()”,后者可以直接在pycharm中执行项目,这里不再详细说明

配置uwsgi

我们直接在flask的根目录下面新建一个文件“config.ini”,使用的方式是配置启动。文件内容如下

#uwsgi启动时所使用的地址与端口

home=/usr/local/flasky/venv

#python程序内用于启动的application变量名

#设置uwsgi包解析的内部缓存区大小。默认4k

buffer-size=32768

配置文件的执行方式,命令行输入指令:

或者不写配置文件(不建议这样做),直接命令行输入

uwsgi–socket127.0.0.1:5000–wsgi-filemanage.py–callableapp–process4–threads2

这里的callable=app这个app是manage.py程序文件内的一个变量,这个变量的类型是flask的application类

这里是因为博主已经配置好了项目自启动,已经有一个配置文件在运行了,大家按照正常流程配置就好。ctrl+c关闭程序,在实际项目中我们的服务器上可能会有多个项目在运行,我们需要应用随同服务器启动并作为后台服务运行才是实际项目需要,所以我们需要安装另一个工具来引导执行uwsgi

安装supervisor

supervisor可以同时启动多个应用,最重要的是当某个应用down掉的时候,他可以自动重启该应用,保证可用性。

centos怎么使用Nginx部署flask应用,nginx配置flask

打开该默认配置文件,最下面一行我们看到,该默认配置文件会从/etc/supervisord/目录下面加载所有的配置文件

我们不需要修改默认的配置文件,只需要在/etc/supervisord/目录下新建一个配置文件(命名为flask_supervisor.conf)

command=/usr/local/flasky/venv/bin/uwsgi/usr/local/flasky/config.ini

directory=/usr/local/flasky

stdout_logfile=/usr/local/flasky/logs/uwsgi_super.log

这里command这一行代码看起来很长,其实就是之前我们的“uwsgiconfig.ini”指令,这里使用的是绝对路径,保证命令和文件的准确性,大家也可以copy这一行代码出去执行,结果是ok的。autostart和autorestart参数保证了我们的应用可以一直保持启动的状态,即使是down掉了也能重启服务。

安装nginx

nginx是轻量级,性能强,占用资源少,能很好的处理高并发的反向代理软件。

正向代理和反向代理

正向代理,作为一个媒介将互联网上获取的资源返回给相关联的客户端。代理和客户端在一个局域网,对于服务是透明的。反向代理,根据客户端的请求,从后端的服务器上获取资源,然后再讲这些资源返回给客户端。代理和服务器再一个局域网,对客户端是透明的。nginx是反向代理的最佳选择。

反向代理的作用

提高动态语言的io处理能力加密和ssl加速安全。负载均衡缓存静态内容支持压缩。

nginx安装指令:

配置nginx

我们找到nginx的配置文件,不要修改默认的nginx.conf(路径/etc/nginx/nginx.conf)文件,只需要在同样的文件夹下面新建一个文件夹(conf.d)然后在conf.d下面新建配置文件(flask_ng.conf)即可,如下图

flask_ng.conf文件内容如下

server_namewww.cloud-test.com;#公网地址

uwsgi_pass127.0.0.1:5000;#指向uwsgi所应用的内部地址,所有请求将转发给uwsgi处理

uwsgi_paramuwsgi_pyhome/usr/local/flasky/venv;#指向虚拟环境目录

uwsgi_paramuwsgi_chdir/usr/local/flasky;#指向网站根目录

uwsgi_paramuwsgi_scriptmanage:app;#指定启动程序

}

小case,解决办法,直接修改本机hosts,绑定就好了,如下图所示

然后也可以找自己的同事一起访问,看看并发请求,网站的运行情况,想来能解决在开发环境使用了host0.0.0.0也只能处理一个用户的请求的问题

supervisorctl是supervisord的命令行客户端工具,使用的配置和supervisord一样,这里就不再说了。下面,主要介绍supervisorctl操作的常用命令:输入命令supervisorctl进入supervisorctl的shell交互界面(还是纯命令行),可以看到应用的运行情况就可以在下面输入命令了。:

help查看程序状态stopprogram_name启动指定的程序restartprogram_name查看该程序的日志update#重启配置文件修改过的程序(修改了配置,通过这个命令加载新的配置)

也可以直接通过shell命令操作:

supervisorctlstatussupervisorctlupdate

以上就是centos怎么使用Nginx部署flask应用的详细内容,更多请关注主机测评网其它相关文章!

标签:
私有云的好处和特点(私有云的优点)
« 上一篇
返回列表
下一篇 »

如本文对您有帮助,就请抽根烟吧!