Пустой ответ от веб-службы Django, размещенной в Openshift Origin, при доступе из-за пределов кластера Openshift

Я выполнил инструкции здесь, чтобы настроить развертывание OpenShift Origin проекта Django, над которым я работаю. на. Вроде все работает. Существует Pod, на котором запущена служба с настроенным маршрутом, и служба предоставляется. Однако когда я перехожу на веб-сайт, я получаю сообщение об ошибке, что соединение было сброшено. Использование curl:

curl http://my-openshift-website.com

приводит к

curl: (52) Empty reply from server

Кроме того, я наблюдаю следующие явления:

  • Я знаю, что код, обслуживающий индексную веб-страницу, запускается, когда я обращаюсь к ней из своего браузера (или с помощью curl), потому что, когда я добавляю код для создания пустого файла при запросе страницы '/', я вижу в терминале модуля, что файл действительно создан.
  • Когда я пытаюсь выполнить ту же команду curl с терминала модуля (т.е. из кластера), все работает, и я получаю веб-страницу.
  • Файлы журнала модуля ничего не регистрируют, когда я пытаюсь получить доступ к службе из веб-браузера, но регистрируют доступ, когда я делаю это с терминала модуля.

person Dave Reikher    schedule 26.08.2018    source источник
comment
Где вы развертываете свое приложение? В облаке openshift (бесплатно) или minishift? Я развернул приложение Django в minishift и частном облаке openshift из этого Dockerfile без каких-либо проблем.   -  person ruddra    schedule 26.08.2018
comment
Какой сервер WSGI у вас запущен? Когда вы скручиваете приложение из модуля, убедитесь, что вы используете curl $HOSTNAME:8080. Это гарантирует, что вы используете внешний IP-адрес, а не localhost. Это покажет, правильно ли вы установили ALLOWED_HOSTS.   -  person Graham Dumpleton    schedule 27.08.2018


Ответы (2)


Это была глупая ошибка с моей стороны. Я использую кластер OpenShift, развернутый CERN (openshift.cern.ch). Я не менял настройку видимости с «Интранет» на «Интернет» в «Доступ к сайту и разрешения» на странице «Управление вашими веб-сайтами в CERN». Существует дополнительное объяснение того, как работает этот параметр:

Приведенная выше страница конфигурации в веб-службах управляет маршрутом по умолчанию в вашем проекте Openshift, то есть маршрутом, в котором свойство Path не определено (а свойство Host соответствует полному доменному имени, назначенному веб-службам).

При использовании нескольких маршрутов в проекте и / или маршрутов со свойством Path видимость каждого маршрута контролируется независимо с помощью аннотации маршрута router.cern.ch/network-visibility. Эта аннотация в настоящее время принимает два значения: Интернет или Интранет. Никакая аннотация (или любое другое значение) не интерпретируется как интрасеть, т.е. маршрут будет доступен только из сети CERN.

Аннотациями можно управлять с помощью команды интерфейса командной строки oc annotate, например oc аннотировать маршрут my-route router.cern.ch/network-visibility=Intranet

person Dave Reikher    schedule 27.08.2018

только из-за аннотации или сопоставления DNS может также способствовать такому поведению

также можно объяснить указанную вами аннотацию, потому что я пытался найти эту аннотацию https://docs.openshift.com/container-platform/3.4/architecture/core_concepts/routes.html#route-specific-annotations, но не удалось найти

person Shubham Baghwala    schedule 28.08.2018