Flask + uWsgi, конечные точки недоступны через HTTPS - PullRequest
0 голосов
/ 06 апреля 2020

Я запускаю контейнерную flask API, обслуживающую uwsgi и nginx. Теперь, когда я пытаюсь добавить SSL к своему API, у меня возникли некоторые проблемы. Согласно этому ответу: nginx с uwsgi и flask показывает неверный запрос только для соединений https Я не должен изменять свои настройки uwsgi, когда перед ним стоит NGINX.

Я использую flask -restplus, который обеспечивает чванство. На http://domain/api/ я получаю свою обычную документацию Swagger, и все мои конечные точки работают нормально. В https://domain/api/ я получаю пустую страницу Swagger с «Определением API не предоставлено», и ни одна из конечных точек не присутствует.

Другими словами, доступ к моему экземпляру flask по HTTPS работает нормально. Чего я не могу понять, так это как заставить flask обслуживать мои конечные точки через HTTPS вместо HTTP (или, желательно, обоих). Здесь есть несколько ответов о SO, который добавляет контекст к функции app.run(), но это справедливо только при использовании встроенного сервера flask, что не имеет смысла в среде prod, где вам нужен SSL.

Вот мой server.py:

from flask import Flask
from flask_cors import CORS
from flask_restplus import Api

from chatbot.api.v1.dialogflow import dialog_api as v1_dialog_api
from chatbot.api.v1.web import web_api as v1_web_api
from chatbot.api.v2.api import api as v2_api

app = Flask(__name__)

app.register_blueprint(v1_dialog_api)
app.register_blueprint(v1_web_api)

api = Api(app, version='2.1')
api.add_namespace(v2_api)

CORS(app)

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...