Kubernetes nginx入口-阻止具有错误主机头的请求
我有一个Django应用程序在Kubernetes上的Nginx ingress后面运行。我希望阻止使用错误主机头发送的请求(这些请求希望进行主机头攻击/缓存中毒) 要在Nginx层阻止这些请求,我知道我可以添加一个带有Kubernetes nginx入口-阻止具有错误主机头的请求,nginx,kubernetes,Nginx,Kubernetes,我有一个Django应用程序在Kubernetes上的Nginx ingress后面运行。我希望阻止使用错误主机头发送的请求(这些请求希望进行主机头攻击/缓存中毒) 要在Nginx层阻止这些请求,我知道我可以添加一个带有default\u server参数的服务器块,如下所述 但是,我不知道如何通过externalingress yaml在Kubernetes中实现这一点。我遇到了这个似乎相关的问题,但无法解决。您可以通过两种方式来实现:通过服务器代码片段或覆盖现有的Nginx入口控制器 文档中
default\u server
参数的服务器块,如下所述
但是,我不知道如何通过externalingress yaml在Kubernetes中实现这一点。我遇到了这个似乎相关的问题,但无法解决。您可以通过两种方式来实现:通过
服务器代码片段或覆盖现有的Nginx入口控制器
文档中的示例,如何通过服务器代码段
注释更新底层nginx入口控制器
Pod的相关nginx.conf
文件中的服务器配置块:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/server-snippet: |
set $agentflag 0;
if ($http_user_agent ~* "(Mobile)" ){
set $agentflag 1;
}
if ( $agentflag = 1 ) {
return 301 https://m.example.com;
}
ConfigMap还需要server snippet
参数,以便将配置传播到nginx入口控制器
Pod:
kind: ConfigMap
apiVersion: v1
metadata:
name: ingress-nginx-ingress-controller
namespace: ingress-nginx
data:
server-snippet: |
set $agentflag 0;
if ($http_user_agent ~* "(Mobile)" ){
set $agentflag 1;
}
if ( $agentflag = 1 ) {
return 301 https://m.example.com;
}