使用flask开发RESTful架构的api服务器端(5)–部署flask应用到nginx
admin
2023-07-31 00:40:15
0

通过前几章的介绍,大概了解了怎样利用flask框架来开发服务端后端,但flask只是一个web框架,提供用户便捷的开发方式,它并不是一个真正的web服务器程序,想要这个服务端应用能够支持高并发、高性能的访问,还是需要将flask应用部署到真正的web服务器上,nginx就是起到这个作用的,想要将flask和nginx联合起来,需要一个叫wsgi的中间件,这里选择gunicorn来进行这个工作,下面进行这几个名词的解释;

nginx:一个高性能的http和反向代理服务器,在高并发方面有良好的表现;

wsgi:全称是web server gateway interface,它是服务器程序和应用程序之间的一个约定,它规定了两者各实现什么功能,以便它们能够配合使用,作为中间件粘合服务器程序和应用程序;

gunicorn:一个开源的全python实现的wsgi程序,在性能和功能上的表现都很不错,很便于开发;

安装gunicorn

简单的使用pip命令即可安装了:

1 pip install gunicorn

例如这时你的flask程序文件为run.py,则使用gunicorn来运行flask的命令为:

1 gunicorn b 127.0.0.1:12345 run:app

其中-b为监听的ip和端口,run为文件名,app为创建的flask对象的名称,另外gunicorn默认使用同步阻塞的网络模型,可用通过配置来进行修改:

1 gunicorn k gevent b 127.0.0.1:12345 run:app

可以通过ps查看gunicorn的运行情况:

QQ图片20150308191530

gunicorn与nginx类似采用多进程模式,一个master进程和多个worker进程协同工作,可以根据自己的cpu数进行配置使用–worker选项

接下来是将gunicorn与nginx进行对接,可以使用nginx的代理功能,将http请求代理到gunicorn的监听端口上来,在nginx的配置文件中添加:

1234567891011 server {    ......    location / {        proxy_set_header XForwardedFor $proxy_add_x_forwarded_for;        proxy_set_header Host $http_host;        proxy_redirect off;        proxy_pass http://127.0.0.1:12345;     }    ......}

如此一个简单的服务端架构就搭建好了,之后就是不断的丰富它的内容,和优化它的性能了。

使用flask开发RESTful架构的api服务器端(4)–flask操作数据库


相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...