【问题标题】:Kubernetes and Authorization header strippedKubernetes 和 Authorization 标头被剥离
【发布时间】:2023-04-04 23:57:01
【问题描述】:

项目:

  • 在 GCloud 上的 Kubernetes 集群上部署暂存 API (Symfony)
  • 及其服务(MariaDB、RabbitMQ ...)

问题:

  1. 所有 Pod 和服务都正确启动
  2. 从外部访问 API 有问题:
    • 我通过 LoadBalancer 服务部署 API,API 是可访问的,但总是删除导致 API 无法使用的标头“授权”。
    • 我通过 Nginx-Ingress 部署 API,一组链接到正确的空气(Ingress 很好地链接到服务和 API 的 Pod),我收到一个外部 IP,但是当我访问这个 IP ,该站点无法访问(请求丢失且未到达服务器)。

【问题讨论】:

  • 您找到解决方案了吗?我也面临同样的问题。
  • 如果您使用的是 Apache2,您需要有一个 htaccess 规则,例如:SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0

标签: kubernetes gcloud


【解决方案1】:

如果您将 Apache 与 CGI/FastCGI 一起使用,那么您可能会收到有关缺少授权标头的错误消息。这是因为默认情况下 Apache 不会将授权标头传递给 PHP。

修复

您需要编辑您的 Apache 站点配置以在您的虚拟主机配置 <VirtualHost> 指令中添加一行。

<VirtualHost>
    # ...
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    # ...
</VirtualHost>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-26
    • 2014-12-20
    • 1970-01-01
    • 2014-03-16
    • 2023-03-17
    • 1970-01-01
    • 2018-12-11
    • 2017-03-04
    相关资源
    最近更新 更多