linux - docker container: curl: (7) 无法连接到 172.17.0.1 端口 4000: 没有到主机的路由
问题描述
我graphql
在 4000 端口的主机上运行服务器
机器上的 curl 效果很好,我得到了我的期望:
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
解决方案
我认为你必须为公共访问配置 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/
推荐阅读
- 3d - DirectX11 可以细分三角形列表吗?
- python - Gensim Fasttext 预训练模型如何获得词汇外单词的向量?
- java - 在 Java 中使用泛型返回空值
- angular - 单选按钮在 Angular 5 中不起作用
- c# - 当我打开一个场景时,我的 Unity 崩溃了。我该如何解决?
- javascript - 处理欧芹表单事件时,是否有办法确定验证了哪个组
- active-directory - Active Directory 组成员未从组继承权限
- python-3.x - 使用 model.predict 输出作为另一个模型的输入
- html - 修复了从页面下方开始的背景和 div
- mysql - 如何用 JOIN 替换 IN 子句?