前言
正好一个项目是python的flask框架开发的,部署的时候就考虑用gunicorn作为应用服务器,然后再用nginx的反向代理套在应用服务器的外层。
架构图
每一台server内部,都安装nginx,以及部署gunicorn的python flask应用程序。nginx和gunicorn之间用unix local socket机制进行连接。
所以gunicorn启动flask程序的时候,请配置成
bind = “unix:/xxx/xxx.sock”来启动,这样就会在/xxx目录下生成xxx.sock文件,而不是启动类似8000的端口了。
nginx反向代理配置
在http模块下(也就是和server模块平行的地方), 先定义一个upstream变量。
upstream myapp_server {
# for UNIX domain socket setups
server unix:/xxx/xxx.sock fail_timeout=0;
# for a TCP configuration