我的graphql
服务器在4000端口的主机上运行
机器的卷曲效果很好,我得到了期望的结果:
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ me { _id } }" }' http://localhost:4000/graphq
当我在容器上卷曲时:
curl http://172.17.0.1
我知道了
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.16.1</center>
</body>
</html>
它告诉我可以从容器到达ngnix
,并向我表明可以从容器到达机器。
但是当我卷曲表单容器时:
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ me { _id } }" }' http://172.17.0.1:4000/graphql
我知道了
curl: (7) Failed to connect to 172.17.0.1 port 4000: No route to host
答案 0 :(得分:0)
我认为您必须为公共访问配置Nginx,因为docker使用特殊网络,因为它确实具有不同的网络范围,因此您必须在Nginx服务器中指定网络范围。
请参考以下链接: https://docs.nginx.com/nginx/admin-guide/security-controls/controlling-access-proxied-tcp/
https://www.cyberciti.biz/faq/linux-unix-nginx-access-control-howto/