我有一个ASP.NET WebApi项目,它会在每个请求上返回安全头:
当我在Kubernetes集群中使用Ingress运行此应用程序时,我的报头丢失
如何配置NGINX来使用我的应用程序的响应头?为什么Ingress NGINX删除我的响应报头?
我没有任何使用NGINX配置的经验。请建议如何在k8s集群中执行此操作。谢谢
发布于 2020-05-10 05:33:07
在入口中使用以下注释来设置响应头
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_headers "X-Frame-Options: Deny";
more_set_headers "X-Xss-Protection: 1; mode=block";
more_set_headers "X-Content-Type-Options: nosniff";
发布于 2020-05-17 22:45:02
您无法找到这些标头,因为流量是从充当代理的nginx入口控制器流出的。要添加一些自定义标头,您可以使用以下给定步骤。
custom-headers.yml
,然后添加以下数据。apiVersion: v1 data: X-Frame-Options:"Deny“X-Xss-Protection:"1;mode=block”X-Content-Type-Options:"nosniff“种类: ConfigMap元数据:名称:自定义标头命名空间:入口-nginx
此文件将在ConfigMap -nginx名称空间中创建一个ingress。应用此ConfigMap:kubectl apply -f custom-headers.yml
现在我们需要让我们的nginx入口控制器使用这个新的ConfigMap。为此,我们需要添加配置映射,其中包含到目前为止一直使用的全局配置。为此,创建一个文件configmap.yml并添加以下数据。apiVersion: v1数据: proxy-set-headers:“入口-nginx/自定义头”类型: ConfigMap元数据:名称:nginx-配置命名空间:入口-nginx标签:app.kubernetes.io/名称:入口-nginx app.kubernetes.io/部分:入口-nginx
通过以下方式应用此配置:kubectl apply -f configmap.yml
使用以下命令检查配置:kubectl exec <nginx-controller pod name> -n ingress-nginx cat /etc/nginx/nginx.conf
发布于 2020-09-02 17:29:05
我自己还没有尝试过,但我认为您需要启用此设置。
data:
allow-backend-server: "true"
您可以尝试通过注释启用此设置。
https://stackoverflow.com/questions/61703919
复制相似问题