使用nginx+gunicorn发布flask应用

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;
   }
}


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/429.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。