美文网首页程序猿的笔记本
nginx+gunicorn+upstart方式部署

nginx+gunicorn+upstart方式部署

作者: 88ea6130522d | 来源:发表于2017-10-13 10:09 被阅读8次

    flask + gunicorn

    动态网站/后端接口要被客户端访问到,一般是通过过wsgi协议解析。wsgi是服务端和客户端交互的接口规范,wsgi服务器的作用是接受和分析用户的请求,调用应用程序进行处理并返回结果。wsgi服务器或叫做应用服务器,python里面一般用uwsgi和gunicorn,都是广泛应用和比较成熟的。这里使用gunicorn配置启动flask应用。安装完gunicorn后即可启动flask应用:

    gunicorn -w 4 -b 127.0.0.1:8080 app:app
    

    app:app 第一个app是文件名,第二个app是flask python代码中定义的app名。

    gunicorn + upstart

    上面已经用gunicorn开启了flask应用,linux中的upstart可以配置便捷的命令行启动,以centos举例,只需了解一下upstart的配置语法即可配置自己的upstart job/service,upstart配置放在/etc/init下,建立一个名为molockflask的upstart配置示例。
    新建配置文件 /etc/init/molockflask.conf 内容如下:

    start on runlevel [2345]                                                                            
    stop on runlevel [!2345]                                                                            
    respawn                                                                                             
    env PATH=/usr/share/nginx/flaskenv/bin:$PATH                                                       
    chdir /usr/share/nginx/flaskenv                                                                     
    exec gunicorn -w 4 -b 127.0.0.1:8080 app:app >> /usr/share/nginx/flaskenv/log.txt 2>&1
    

    initctl list 命令可以列出当前生效的upstart清单,如果看到molockflask则代表upstart配置完成,如果看不到可以用命令initctl reload-configuration 初始化一下upstart。再不行的话就只配置语法有问题了,centos的upstart配置貌似很容易出错,试了好多次才搞定。
    upstart配置完成后,常用的命令有:

    start molockflask
    stop molockflask
    reload molockflask
    

    用nginx进行反向代理

    前面两步已经部署好flask应用服务了,最后一步用nginx进行反向代理,配置挺简单的,nginx示例配置如下:

    location /random {
        proxy_pass http://127.0.0.1:8080; # 反向代理
        proxy_set_header    X-Real-IP            $remote_addr;
        proxy_set_header    X-Forwarded-For      $proxy_add_x_forwarded_for;
        proxy_set_header    Host                 $http_host;
        proxy_set_header    X-NginX-Proxy        true;
        proxy_set_header    Connection           "";
        proxy_http_version  1.1;
    }
    

    其中proxy_pass这一行就完成了反向代理。

    至此就完成了nginx+gunicorn+upstart对flask的简单部署配置。

    本文最先发布于molock.cn帆的博客

    相关文章

      网友评论

        本文标题:nginx+gunicorn+upstart方式部署

        本文链接:https://www.haomeiwen.com/subject/aoaayxtx.html