前言
flask+uwsgi+nginx这个组合是一种基于python的web运行环境,使用这种结构的数据请求流程如下图:
flask是一个基于python的web应用框架,我们使用这个框架来编写代码。
nginx作为代理服务器负责请求转发以及结果返回等。
uwsgi在这里作为nginx和flask的中介。
如何配置?
1.安装flask
使用pip工具安装: pip3 install flask.
2.安装uwsgi
同样使用pip: pip3 install uwsgi
3.编写uwsgi的配置文件
新建一个配置文件uwsgi.ini,输入以下内容:
wsgi-file: flask程序启动的文件,
http:程序使用的地址和端口
chdir:项目目录
callable:程序中应用的变量名,也就是hello.py文件中的app = Flask(__name__)里的app
module:模块名也就是hello.py去掉后缀,app与callable解释一样。
4.用uwsgi启动程序
uwsgi --ini uwsgi.ini
uwsgi后加上参数--ini后接配置文件路径即可。程序启动后就可以通过浏览器访问了,不需要再手动运行hello.py。
到这一步就实现了uwsgi + flask的配置,接下来再添加一个nginx。
5.配置nginx
nginx的安装自行百度,打开配置文件nginx.conf进行如下配置(蓝色字体部分被注释掉,截图没截到#)
uwsgi的配置在location中,uwsgi_pass对应uwsgi配置中的地址和端口。需要注意的是使用nginx要把uwsgi配置文件中的http=ip:port改为socket=ip:port。
UWSGI_CHDIR表示项目根目录,
UWSGI_SCRIPT表示启动程序的主程序。
6.启动nginx,启动uwsgi,通过浏览器访问。此时直接输入IP地址而不需要跟8081端口,因为配置中nginx监听的是默认端口80,相当于输入IP地址访问的是nginx,然后通过nginx转到127.0.0.1:8081(uwsgi_pass)。