美文网首页
Python web 部署:Flask+Nginx+gunico

Python web 部署:Flask+Nginx+gunico

作者: ZZIXU | 来源:发表于2016-11-25 13:56 被阅读215次

    Falsk的建立这里再叙述,主要说的是部署方面的内容。

    使用gunicorn部署Flask程序

    安装gunicorn

    pip install gunicorn
    使用gunicorn启动flask
    gunicorn -w4 -b0.0.0.0:8080 web:app
    注:web为主程序的名字
    此时,我们需要用 8080 的端口进行访问,原先的5000并没有启用。其中 gunicorn 的部署中,,-w 表示开启多少个 worker,-b 表示 gunicorn 开发的访问地址。
    结束gunicorn 需要执行 pkill gunicorn,我们还可以使用一个进程管理工具来管理系统的进程----supervisor

    安装supervisor

    pip install supervisor
    echo_supervisord_conf > supervisor.conf # 生成 supervisor 默认配置文件
    vim supervisor.conf # 修改 supervisor 配置文件,添加 gunicorn 进程管理
    

    在 supervisor.conf配置晚间底部添加

    [program:web]
    command=/home/zxjd/Web/venv/bin/gunicorn -w4 -b0.0.0.0:8080 web:app ; supervisor启动命令
    directory=/home/zxjd/Web/                       ; 项目的文件夹路径
    startsecs=0                                     ; 启动时间
    stopwaitsecs=0                                  ; 终止等待时间
    autostart=false                                 ; 是否自动启动
    autorestart=false                               ; 是否自动重启
    stdout_logfile=/home/zxjd/Web/log/gunicorn.log  ; log 日志
    stderr_logfile=/home/zxjd/Web/log/gunicorn.err  ; 错误日志
    

    supervisor的基本使用命令

    supervisord -c supervisor.conf 通过配置文件启动
    supervisorsupervisorctl -c supervisor.conf status 察看supervisor的状态
    supervisorctl -c supervisor.conf reload 重新载入 配置文件
    supervisorctl -c supervisor.conf start [all]|[appname] 启动指定/所有 supervisor管理的程序进程
    supervisorctl -c supervisor.conf stop [all]|[appname] 关闭指定/所有 supervisor管理的程序进程
    

    supervisor还可以使用web的管理界面,相关配置请看其他教程
    使用supervisor启动gunicorn。
    supervisord -c supervisor.conf

    安装配置Nginx

    sudo apt-get install nginx
    可以采用supervisor管理Nginx进程
    supervisor的配置如下:

    [program:nginx]
    command=/usr/sbin/nginx
    startsecs=0
    stopwaitsecs=0
    autostart=false
    autorestart=false
    stdout_logfile=/home/zxjd/Web/log/nginx.log
    stderr_logfile=/home/zxjd/Web/log/nginx.err
    

    Nginx的配置:
    配置文件为/etc/nginx/sites-avaliable/default

    server {
        listen 80;
        server_name example.org; # 这是HOST机器的外部域名,用地址也行
    
        location / {
            proxy_pass http://127.0.0.1:8080; # 这里是指向 gunicorn host 的服务地址
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    
      }
    
    

    启动服务
    supervisor -c supervisor.conf start all
    根据主机的ip地址和8080端口其他客户端就可以访问了。

    相关文章

      网友评论

          本文标题:Python web 部署:Flask+Nginx+gunico

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