无法在nginx中使用more_clear_input_headers清除或设置x-forwarded-proto



这是我的设置

https->AWB ALB->ingress nginx->sonarqube

在入口和随后的sonarqube处接收到的x-forwardedproto报头是http,因为ssl在ALB处卸载。我想将x-forwarded-proto更改为https。到目前为止,我已经尝试过

  • proxy_set_header X-Forwarded-Proto https;,这导致标头被附加为"x-forwarded-proto": "http, https",这不是我所需要的
  • more_clear_input_headers "x-forwarded-proto"试图清除不适用于此和许多其他标头的标头(但适用于user-agent(
  • more_set_input_headers "X-Forwarded-Proto: https",它不更新此标头和许多其他标头的标头值,但用于添加一些自定义标头

我正在使用kubernetes入口nginx

为什么我无法清除或设置某些标头,但不是全部,尤其是X-Forwarded-*

X-Forwarded-Proto请求标头可帮助您识别客户端用于连接到负载均衡器的协议(HTTP或HTTPS(。您的服务器访问日志只包含服务器和负载均衡器之间使用的协议;它们不包含关于客户端和负载均衡器之间使用的协议的信息。要确定客户端和负载平衡器之间使用的协议,请使用X-Forwarded-Proto请求标头。弹性负载平衡将客户端和负载平衡器之间使用的协议存储在X-Forwarded-Proto请求标头中,并将标头传递给服务器。

您的应用程序或网站可以使用存储在X-Forwarded-Proto请求标头中的协议来提供重定向到适当URL的响应。

X-Forwarded-Proto请求标头采用以下形式:

X-Forwarded-Proto:始发协议

以下示例包含源自客户端的请求的X-Forwarded-Proto请求标头(HTTPS请求(:X-Forwarded-Proto:https

有关详细信息,请参阅本文档。

最新更新