【发布时间】:2018-10-25 20:23:25
【问题描述】:
在一个由多个通过 docker-compose 运行的微服务组成的应用程序中,我需要一种方法来从一个容器(app 通过烧瓶和请求)直接向另一个容器(chart/django)发出请求:
这是我正在尝试的简化版本。
routes.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 用于这个特定的微服务。
这似乎是因为主机名中有一个下划线:see this post。有没有解决的办法?看来容器之间必须可以发出简单的请求。
【问题讨论】:
标签: django docker flask docker-compose