问题描述
我有一个模块的以下配置。此模块唯一用于返回 403 的网站。使用 http 时它可以正常工作,而使用 https 时它会失败。
proxy_http_4xx:
prober: http
timeout: 5s
http:
valid_http_versions:
- "HTTP/1.1"
- "HTTP/2"
valid_status_codes:
- 403
method: GET
headers:
User-Agent: prometheus-blackBox_exporter
Accept-Language: en-US
no_follow_redirects: false
fail_if_ssl: false
fail_if_not_ssl: false
tls_config:
insecure_skip_verify: true
preferred_ip_protocol: "ip4"
proxy_url: http://proxy.com:1111
解决方法
答案很可能是由于 config being typed incorrectly。 Http/2 曾经被称为 http/2.0,而黑盒导出器从未更新过它的名称,因此 http/2 将失败。
valid_http_versions:
- "HTTP/1.1"
- "HTTP/2.0"
它仍然适用于 http 的原因是因为 http/2 在几乎所有浏览器中都不适用于不安全的连接。它不再是强制性的,而是 most browsers choose not to support it。 这就是为什么使用 http 可以正常工作的原因,因为它已更改为 http/1.1。您可以通过在检查器模式下打开网络选项卡并查看请求来验证这一点。