首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AWS上使用nginx和gunicorn的Flask应用程序

在AWS上使用nginx和gunicorn的Flask应用程序
EN

Stack Overflow用户
提问于 2019-05-17 00:15:28
回答 1查看 743关注 0票数 1

我有一个简单的Flask应用程序(简单地显示"Hello world"),我想把它部署在亚马逊网络服务弹性BeanStalk上。使用nginx和gunicorn进行多教程演示部署。1)我不明白为什么我们需要使用nginx,gunicorn已经是一个web服务器来取代Flask内置web服务器了。2)教程介绍了如何构建两个Docker容器:一个用于Flask和gunicorn,另一个用于nginx。为什么我需要两个容器,我可以打包在一个容器中吗?对于两个容器,我不能使用单容器Docker,我需要使用多容器Docker。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-05-17 00:24:54

通常在这个三人组中,nginx被用作反向代理。

可以将flask+gunicorn+nginx打包到同一个docker容器中:

例如:

代码语言:javascript
复制
FROM python:3.6.4

# Software version management
ENV NGINX_VERSION=1.13.8-1~jessie
ENV GUNICORN_VERSION=19.7.1
ENV GEVENT_VERSION=1.2.2

# Environment setting
ENV APP_ENVIRONMENT production

# Flask demo application
COPY ./app /app
RUN pip install -r /app/requirements.txt

# System packages installation
RUN echo "deb http://nginx.org/packages/mainline/debian/ jessie nginx" >> /etc/apt/sources.list
RUN wget https://nginx.org/keys/nginx_signing.key -O - | apt-key add -
RUN apt-get update && apt-get install -y nginx=$NGINX_VERSION 
&& rm -rf /var/lib/apt/lists/*

# Nginx configuration
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx/conf.d/nginx.conf

# Gunicorn installation
RUN pip install gunicorn==$GUNICORN_VERSION gevent==$GEVENT_VERSION

# Gunicorn default configuration
COPY gunicorn.config.py /app/gunicorn.config.py

WORKDIR /app

EXPOSE 80 443

CMD ["nginx", "-g", "daemon off;"]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56172747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档