【问题标题】:using https with flask and gunicorn on Azure Container Instance在 Azure 容器实例上使用带有烧瓶和 gunicorn 的 https
【发布时间】:2022-01-21 22:09:56
【问题描述】:

我在 Azure 容器实例上使用 Flask 和 Gunicorn 部署了 Flask Web 应用程序,其中包含以下文件

app.py

from flask import Flask, Response, jsonify, request
from .errors import errors

app = Flask(__name__)
app.register_blueprint(errors)


@app.route("/", methods=["GET"])
def index():
    return Response("Hello, world!", status=200)

wsgi.py

from api import app

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=443)

运行.sh

gunicorn wsgi:app --bind  0.0.0.0:443 --log-level=info --workers=3 --reload --timeout 120

Dockerfile

FROM python:3.7.8-slim as build
COPY requirements/common.txt requirements/common.txt
RUN apt-get update && apt-get install -y build-essential
RUN apt-get install -y cmake
RUN pip install -U pip && pip install -r requirements/common.txt

COPY ./api /app/api
COPY ./bin /app/bin
COPY wsgi.py /app/wsgi.py

WORKDIR /app
EXPOSE 443
ENTRYPOINT ["bash", "/app/bin/run.sh"] 

这在使用普通的 http 请求时效果很好。但是,我需要使用 https,因为我将发送敏感信息。

我被指导使用 certbot,但我不知道如何将它与我拥有的东西集成,并且我将把它部署到 ACI

如何解决这个问题?

【问题讨论】:

  • 您需要部署一个边车容器或使用负载均衡器。 docs.microsoft.com/en-us/azure/container-instances/…itnext.io/…
  • 您好@amro_ghoneim,如果我的回答对您有帮助,您可以点赞并接受它作为答案(点击答案旁边的复选标记将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢
  • 您好@amro_ghonei,如果我的回答对您有帮助,您可以投票并接受它作为答案(点击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢

标签: python docker flask azure-container-instances


【解决方案1】:

感谢 John Hanley 提出的建议,将其发布为帮助其他社区成员的答案。

您需要在容器组下部署另一个容器,即运行 TLS/SSL 提供程序的侧容器。通过使用单独的 TLS 端点设置容器组,您可以在不更改应用程序代码的情况下为您的应用程序启用 TLS 连接。

运行公共Nginx 映像的sidecar 容器,配置为使用TLS。

容器组只公开 Nginx 的 443 端口及其公共 IP 地址。 Nginx 将 HTTPS 请求路由到配套的 Web 应用程序。

欲了解更多信息,请关注此 MS 文档:Enable TLS with sidecar container - Azure Container Instances | Microsoft Docs

您还可以使用 Caddy,它是一款功能强大的企业级开源 Web 服务器,具有用 Go 编写的自动 HTTPS。

也请参考:Automatic HTTPS with Azure Container Instances (ACI) | by Johann Gyger | ITNEXT

【讨论】:

    猜你喜欢
    • 2016-03-19
    • 1970-01-01
    • 2018-06-26
    • 2020-12-22
    • 2023-03-25
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多