Kubernetes 过滤nginx入口上的输入路径以保护后端

Kubernetes 过滤nginx入口上的输入路径以保护后端,kubernetes,nginx-ingress,Kubernetes,Nginx Ingress,我有一个非常简单的配置,但还没有找到直接的答案。 因此,背后有nginx入口和gunicorn服务。 我想保护gunicorn后端免受所有机器人程序的恶意URL攻击。 因此,我只想重定向几个URL,如: / /一个/* /两个/* /三/* 实现此目标最简单的入口配置是什么?您可以尝试以下配置: apiVersion: extensions/v1beta1 kind: Ingress metadata: name: app labels: app.kubernetes.io/

我有一个非常简单的配置,但还没有找到直接的答案。 因此,背后有nginx入口和gunicorn服务。 我想保护gunicorn后端免受所有机器人程序的恶意URL攻击。 因此,我只想重定向几个URL,如:

  • /
  • /一个/*
  • /两个/*
  • /三/*

实现此目标最简单的入口配置是什么?

您可以尝试以下配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: app
  labels:
    app.kubernetes.io/name: app
  annotations:
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  rules:
    - host: app.domain.com
      http:
        paths:
        - path: /(one|two|three)/
          backend:
            serviceName: app
            servicePort: 5000
        - path: /(.+)
          backend:
            serviceName: app2
            servicePort: 5000
        - path: /
          backend:
            serviceName: app
            servicePort: 5000
在本例中:

  • 应用程序-您的应用程序
  • app2-应用程序,响应403或其他错误

您使用或?我想说,像这样最简单的入口就足够了,只要再添加2条路径,如果不使用tls部分,就删除它。另外,看看这个,这里有一些有用的信息和一些例子。这回答了你的问题吗?部分地,问题是root(“/”)允许一切,但我需要“/”准确地说,并列出带有路径的URLL,以及其他一切-禁止。