Неверный заголовок HTTP_HOST. Указанное доменное имя недопустимо. Запросы к приложению dockerized django с использованием имени контейнера. - PullRequest
0 голосов
/ 25 октября 2018

В приложении, состоящем из нескольких микросервисов, запускаемых через docker-compose, мне нужен способ сделать запрос из одного контейнера (app через флешку и запросы) напрямую в другой (chart / django):

Это упрощенная версия того, что я пытаюсь сделать.

rout.py:

@APP.route('/post_data', methods=['POST'])
def post_data():
  post_data = request.get_json()
  response = requests.post('http://chart_app_1:8080/json/', data=post_data)
  return response.text

В ответ я получаю сообщение об ошибке:

django.core.exceptions.DisallowedHost: Invalid HTTP_HOST header: 'chart_app_1:8080'. The domain name provided is not valid according to RFC 1034/1035

Я могу сделать такой запрос в другие контейнеры, на которых запущены приложения-фляги, без проблем.У меня нет никакого контроля над тем, используем ли мы Django для этого конкретного микросервиса.

Похоже, что это может быть потому, что в имени хоста есть подчеркивание: см. Этот пост ,Это можно обойти?Похоже, что можно сделать простой запрос между контейнерами.

1 Ответ

0 голосов
/ 25 октября 2018

В файле docker-compose измените имя службы, чтобы избежать подчеркивания в службе Django.

Это единственный известный мне способ избежать ошибки, поскольку это не ограничение Docker, а проблема Django.

...