链接的docker-compose容器发出http请求
我已经在网上寻找了一段时间,但没有找到解决我的问题的解决方案,该解决方案与此问题类似,容器之间的DockerHTTP请求。但是这个答案已经是我在计算机上正在做的事情。我正在提供我的docker-compose文件
version: "3"services:
web:
image: ecdavis15/tsn-web-server
ports:
- "3000:3000"
links:
- app
app:
image: ecdavis15/tsn-app-server
ports:
- "3030:3030"
links:
- mongo
mongo:
image: mongo
ports:
- "27017:27017"
volumes:
- ./data/db:/data/db
在我的Web容器中,我向http://app:3030/history
或发出了http
get请求,http://app:3030/rules
但是我没有看到该请求找到通往应用容器的方式。我在浏览器控制台中看到的是此错误消息net::ERR_NAME_NOT_RESOLVED
。我不确定为什么http请求没有进入应用程序容器,因为它已链接到Web容器。有任何想法吗?
回答:
由于您进行了Ajax调用,它将由客户端而不是服务器端的浏览器发送。所以,当你从拨打电话<IP>:3000
到app:3030
了API,你的浏览器不知道什么程序是。所以你无能为力
回答:
<IP> app
然后,当您使用浏览应用程序时app:3000
,app:3030
将自动指向正确的地址。
回答:
您可以使用javascript获取您应该用于api的网址
document.location.scheme + "://" + document.location.hostname + ":3030"
回答:
您可以创建Nginx反向代理
location / { proxy_pass http://localhost:3000;
location /api {
proxy_pass http://localhost:3030;
}
}
这将需要对代码文件进行一些更改,以便您使用 /api
以上是 链接的docker-compose容器发出http请求 的全部内容, 来源链接: utcz.com/qa/409511.html