• Docker danriti/nginx-gunicorn-flask 使用


    现成的镜像,已经配置好nginx-gunicorn-flask,可直接部署flask 项目

    • 直接部署flask项目

    安装镜像

    • 如果默认源比较慢,可以换成163镜像源 http://hub-mirror.c.163.com
    • docker pull danriti/nginx-gunicorn-flask

    运行镜像,将flask项目映射到容器

    • 映射项目到容器
      • /usr/share/nginx/www/ 这个是nginx默认的目录
      • -P --expose 90 这里指定容易要映射出来的端口为80
      • docker run -it -P --expose 80 --name gunicorn1 -v $PWD/flaskDemo2:/usr/share/nginx/www/flaskDemo2 danriti/nginx-gunicorn-flask
    • 映射日志到本机
      • /var/log/nginx 这个是nginx日志目录,可以映射出来
      • docker run -it -P --expose 80 --name gunicorn2 -v $PWD/flaskDemo2:/usr/share/nginx/www/flaskDemo2 -v $PWD/log:/var/log/nginx danriti/nginx-gunicorn-flask

    进入镜像

    • docker exec -it gunicorn1 bash

    • 查看flask项目 cd /usr/share/nginx/www/flaskDemo2

    • 如果一切正常,可以直接运行项目,但是外部不能直接访问

    • 手动运行项目 gunicorn -w 4 -b wsgi:app 默认访问路径 http://127.0.0.1:8000/

    • wsgi 是文件名,app是入口 app = Flask(__name__)

    # -*- coding:utf-8-*-
    # wsgi.py
    
    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route("/")
    def hello_world():
        return "name"
    @app.route("/register")
    def register():
        return "hello register"
    if __name__ == '__main__':
        app.run()
    

    配置nginx

    • 如果要在外部访问,要配置nginx
    • /etc/nginx/sites-available/ 目录下有配置文件 flask.conf
    • 将80端口的访问转发到8000
    server {
        listen      80;
    
        location / {
            proxy_pass http://127.0.0.1:8000/;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    

    手动运行项目

    • 启动容器后,进入项目目录,手动运行项目就行
    • gunicorn -w 4 -b wsgi:app

    TODO: 有时间研究一下自动启动项目

  • 相关阅读:
    demo_10_02 云数据库聚合_bucket_02 bucketAuto
    demo_10_02 云数据库聚合_bucket_01
    nginx 启动脚本
    grep 全局搜索打印命令
    ulimit shell启动进程所占用的资源命令
    nginx 一键安装
    安装 nginx
    学习笔记::杜教筛
    markdown测试
    bzoj4589
  • 原文地址:https://www.cnblogs.com/songliquan/p/10892790.html
Copyright © 2020-2023  润新知