Как заставить приложение Python 3 Django в среде AppEngine Flexible всегда использовать https? - PullRequest
0 голосов
/ 22 февраля 2019

При использовании настраиваемого домена с сертификатом безопасности, созданным Google, как я могу получить http-запросы для перенаправления на https?

Я попытался установить для свойства Django SECURE_SSL_REDIRECT значение True в настройках, но это не помогло.работа.

Редактировать: Да, этот вопрос уже существует, но решение работает только с Python2.

РЕШЕНИЕ: Для моих целей решение состояло в том, чтобы просто перейти от среды Appengine Flexible кAppengine Стандартная среда.Я решил свои проблемы с SSL со следующим app.yaml.

runtime: python37
entrypoint: gunicorn -b :$PORT <django-project-name>.wsgi

handlers:
  - url: /.*
    secure: always
    redirect_http_response_code: 301
    script: auto

beta_settings:
  cloud_sql_instances: "<project-id>:<region>:<cloud-sql-instance>"

1 Ответ

0 голосов
/ 22 февраля 2019

После некоторой догадки и проверки я наткнулся на решение.

Не используйте настройку SECURE_SSL_REDIRECT Django.Вместо этого обновите свой app.yaml, включив в него secure: всегда, но также убедитесь, что точка входа установлена, url установлен на /.*, а скрипт установлен на auto.

Несмотря на то, что в документации Google явно говорится, чтоРаздел обработчиков устарел, тестирование приложения разворачивается с разделом обработчиков и без него, и это показывает, что на сегодняшний день GAE ссылается на раздел обработчиков app.yaml.

Редактировать: Обнаружено, что это ясно показывает обработчики в Python 3.7app.yaml - https://cloud.google.com/appengine/docs/standard/python3/config/appref#handlers_element

app.yaml

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT <projectid>.wsgi

handlers:
  - url: /.*
    secure: always
    script: auto

beta_settings:
    cloud_sql_instances: "<projectid>:<dbregion>:<dbinstance>"

runtime_config:
  python_version: 3

После того, как у меня появилось больше проблем, несмотря на то, что в документации сказано, что обработчики будут работать, я перешел на среду Appengine Standard, и этоработает отлично.

runtime: python37
entrypoint: gunicorn -b :$PORT <django-project-name>.wsgi

handlers:
  - url: /.*
    secure: always
    redirect_http_response_code: 301
    script: auto

beta_settings:
  cloud_sql_instances: "<project-id>:<region>:<cloud-sql-instance>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...