我正在运行节点apache-exporter
(https://github.com/Lusitaniae/apache_exporter) 与 Apache 本身位于同一个 Docker 容器中(从 httpd 映像构建)。 (因此,我能够通过一个 Dockerfile 和一个 docker-compose 将服务直接分发到容器中,就像使用两个 Dockerfile 一样,并将两个容器组合在一个 docker-compose 文件中。)
(apache-exporter
和 Apache 服务器) 运行,我可以apache-up
在 Prometheus/Grafana 中看到数据。
我已经将Location
块插入我的httpd.conf
<VirtualHost *:80>
ServerName XXX.XXX.XXX.XX
ServerAlias www.XXX.XXX.XXX.XX
<Location /server-status>
SetHandler server-status
#Require local
Require host example.com
#Require ip YYY.YYY.YYY.YYY
</Location>
Redirect permanent / https://XXX.XXX.XXX.XXX
</VirtualHost>
XXX.XXX.XXX.XXX
= 外部 IP,YYY.YYY.YYY.YYY
= docker 网络内部 IP 并加载模块
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
但是我收到了错误:
level=error msg="Error scraping apache: error scraping apache: Get \"https:///XXX.XXX.XXX.XXXserver-status/?auto\": dial tcp: lookup XXX.XXX.XXX.XXXserver-status on YYY.YYY.YYY.YYY: no such host" source="apache_exporter.go:571"
哪里错了? 是/
不是哪里少了 ? 我是否必须 使用 在另一个块Location
内写入块? 我必须设置 吗? 我猜这只是我的一个愚蠢的错误,因为IP 和 之间缺少。 我似乎没有考虑 ,因此 URL 由 处理。将重定向放在最后时,可以在 内使用多个。VirtualHost
ServerName
--scrape_uri
/
server-status
Location
Redirect permanent
ProxyPass
VirtualHost
/
我想限制server-status
对 Apache 容器本身的访问。
答案1
它使用以下配置来工作:
<VirtualHost *:80>
ServerName XXX.XXX.XXX.XX
ServerAlias www.XXX.XXX.XXX.XX
<Location /server-status>
SetHandler server-status
Require all granted
Require host example.com
</Location>
</VirtualHost>