前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker danriti/nginx

Docker danriti/nginx

作者头像
py3study
发布2020-01-16 15:34:10
3630
发布2020-01-16 15:34:10
举报
文章被收录于专栏:python3python3

现成的镜像,已经配置好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__)
代码语言:javascript
复制
# -*- 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
代码语言:javascript
复制
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: 有时间研究一下自动启动项目

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装镜像
  • 运行镜像,将flask项目映射到容器
  • 进入镜像
    • 配置nginx
      • 手动运行项目
      相关产品与服务
      容器镜像服务
      容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档