首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Ingress NGINX删除了我的响应报头

为什么Ingress NGINX删除了我的响应报头
EN

Stack Overflow用户
提问于 2020-05-10 05:22:04
回答 3查看 4.6K关注 0票数 6

我有一个ASP.NET WebApi项目,它会在每个请求上返回安全头:

当我在Kubernetes集群中使用Ingress运行此应用程序时,我的报头丢失

如何配置NGINX来使用我的应用程序的响应头?为什么Ingress NGINX删除我的响应报头?

我没有任何使用NGINX配置的经验。请建议如何在k8s集群中执行此操作。谢谢

EN

回答 3

Stack Overflow用户

发布于 2020-05-10 05:33:07

在入口中使用以下注释来设置响应头

代码语言:javascript
运行
复制
    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";
票数 9
EN

Stack Overflow用户

发布于 2020-05-17 22:45:02

您无法找到这些标头,因为流量是从充当代理的nginx入口控制器流出的。要添加一些自定义标头,您可以使用以下给定步骤。

  1. 创建一个文件并将其命名为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

票数 1
EN

Stack Overflow用户

发布于 2020-09-02 17:29:05

我自己还没有尝试过,但我认为您需要启用此设置。

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#allow-backend-server-header

代码语言:javascript
运行
复制
data:
    allow-backend-server: "true"

您可以尝试通过注释启用此设置。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61703919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档