Azure 应用程序网关中 PGAdmin 启用了严格 MIME 类型检查的问题

Azure 应用程序网关中 PGAdmin 启用了严格 MIME 类型检查的问题

我正在尝试在 Azure AKS 中安装 pgAdmin(图像:“dpage/pgadmin4:6.21”)。当我使用 Kubernetes LoadBalancer 服务时,我能够访问该应用程序,但是当我使用带有 Ingress 的 Azure 应用程序网关时,登录页面显示正常。但是,登录后,它卡在加载页面上。

在此处输入图片描述

当我检查浏览器控制台时,发现以下错误:

拒绝从“https://somedomain.xyz.cloudapp.azure.com/pgadmin4/login?next=%2Fpgadmin4%2Fbrowser%2F”执行脚本,因为其 MIME 类型(“text/html”)不可执行,并且启用了严格的 MIME 类型检查。

我几乎可以肯定,该问题与 pgAdmin 安装无关,因为它已与 Kubernetes LoadBalancer 服务配合使用。我找到了一些解决方法,通过在 pgAdmin 脚本中添加几行代码来摆脱加载页面(因为它假设 pgAdmin 有错误),但我未能成功实施这些解决方法。

我也尝试过更改 Ingress 配置,但没有成功。有什么建议或方法可以追踪问题并找到根本原因吗?

入口实现:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: pgadmin-ingress
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/ssl-redirect: "false"
    appgw.ingress.kubernetes.io/appgw-ssl-certificate: "devaks-cert"
    appgw.ingress.kubernetes.io/cookie-based-affinity: "true"
spec:
  rules:
    - http:
        paths:
          - path: /pgadmin4/*
            pathType: ImplementationSpecific
            backend:
              service:
                name: pgadmin
                port:
                  number: 80

答案1

我们有一个类似的设置,其中 Azure 应用程序网关位于 AKS 上部署的 pgadmin 前面,更新以下配置可以为我们解决问题,创建了名为config_distro.py

  X_CONTENT_TYPE_OPTIONS = ""    # default value is nosniff
  ENHANCED_COOKIE_PROTECTION = False
  X_XSS_PROTECTION = "0"  # default value is '1; mode=block'

有关这些配置的详细说明,请查看以下 URL https://www.pgadmin.org/docs/pgadmin4/latest/config_py.html

相关内容