Gunicorn 绿色独角兽 是一个Python WSGI UNIX的HTTP服务器。这是一个pre-fork worker的模型,从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器大致与各种Web框架兼容,只需非常简单的执行,轻量级的资源消耗,以及相当迅速
Gunicorn的安装比较简单
pip install Gunicorn
然后就可以直接使用gunicorn启动我们的flask应用了
gunicorn -w 50 -b 0.0.0.0:9090 manager:app --reload -t 300 -D --access-logfile log/gunicorn.log
以上启动命令的含义为
-w 50 开启50个进程 0.0.0.0:9090 定义9090端口 manager:app manager为项目的文件名,如上面的manager.py文件名,app为manager.py代码中 app = Flask(__name__) –realod 监听到项目文件变动自动重启gunicorn使之生效 -t 300 配置每个请求的超时时间为300秒 -D 让命令后台执行 –access-logfile log/gunicorn.log 将请求日志保存到该文件中
以上我们就可以使用9090端口来访问我们的接口,到这里已经差不多了,但是我们还需要在web最外层用nginx 做下代理提升静态文件的web性能
由于gunicorn对静态处理能力不是太好,我们可以使用nginx做外层的反响代理带处理网站中的静态文件
nginx配置如下
server { listen 80; server_name sulao.cn; location / { location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { access_log off; expires 3d; } location ~ .*\.(js|css)$ { access_log off; expires 1d; } proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:9090; } }