我正在尝试从正在运行的nginx容器(\nginx_status端点限制为127.0.0.1,172.17.0.0/16)获取指标docker exec nginx curl 127.0.0.1/nginx_status.是好的当我运行ELK metricbeat容器并将nginx设置为要监视的主机时错误获取metricset nginx的数据。stubstatus:获取状态时出错:进行http请求时出错:获取“http://nginx/nginx状态”:拨号TCP 172.27.0.6:8080:连接:连接被拒绝。nginx容器是从一个不同的组合文件创建的,而不是metricbeat。它们运行在不同的桥网络中。现在我检查了两个网络,发现它完全在不同的IP地址范围上。
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "192.168.16.0/20",
"Gateway": "192.168.16.1"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
另一个网桥网络已打开
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "192.168.32.0/20",
"Gateway": "192.168.32.1"
}
]
},
这对我来说是一个惊喜。我现在完全糊涂了,想知道发生了什么。这些是我当前的设置
server {
listen 127.0.0.1;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow 172.17.0.0/16;
deny all;
}
}
1.我如何才能可靠地设置nginx服务器块???
1.我在想,docker只使用172.17.0.0/16范围。这是docker-compose特有的吗?
2条答案
按热度按时间1l5u6lss1#
docker-compose将使用以下任何一项:
你可能需要读一点理论(我从来没有过,我实际上是在课堂上睡觉时,它是在学校说教...)
所以答案可能是
因为这段文字来自上面的来源^^^
172.16.0.0/12 用于专用内部网络。此空间中的IP地址不应出现在公共Internet上。
例如,这是postgres容器中pg_hba.conf的一部分
这和你遇到的问题很相似
qmb5sa222#
我们可以通过使用用户定义的桥来指定
docker-compose.yml
内的桥网络。我希望这是你正在寻找的。