Как использовать скрипт Lua с ingress-nginx

Я хотел бы использовать сценарий Lua с ingress-nginx, чтобы заблокировать трафик по определенному пути. Я создал приведенную ниже конфигурацию, но она не работает должным образом.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/server-snippet: |
      location /app-2 {
            rewrite_by_lua_block {
              ngx.status = 403;
              ngx.exit(ngx.HTTP_FORBIDDEN);
        }
      }
spec:
  rules:
    - http:
        paths:
          - path: /app-1
            pathType: Prefix
            backend:
              service:
                name: app-1
                port:
                  number: 80
          - path: /app-2
            pathType: Prefix
            backend:
              service:
                name: app-2
                port:
                  number: 80
              
~ curl http://A.B.C.D/app-2
<html><body><h1>It works!</h1></body></html>
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
0
329
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, это создает контекст location в вашем nginx.conf (в контексте server):

- path: /app-2
  pathType: Prefix
  backend:
    service:
      name: app-2
      port:
        number: 80

и это также создает контекст местоположения с тем же именем:

location /app-2 {
      rewrite_by_lua_block {
        ngx.status = 403;
        ngx.exit(ngx.HTTP_FORBIDDEN);
  }
}

Вполне вероятно, что этот определен выше другого, поэтому он переопределяет его.

Вы можете проверить это:

kubectl cp <nginx-ingress-controller-pod> -c nginx nginx.conf nginx.conf
cat nginx.conf

Это считается плохой практикой, поскольку при следующем перезапуске модуля nginx конфигурация будет потеряна. Предпочитаю использовать источник фрагмента конфигурации: kubernetes.github.io/ingress-nginx/user-guide/…

webofmars 22.05.2024 12:16

Вот почему вы минусуете? Вместо этого вы могли бы предложить изменение?

Rico 22.05.2024 23:26

не стесняйтесь редактировать его, и я буду рад проголосовать за ваш комментарий, не беспокойтесь

webofmars 23.05.2024 12:11

Другие вопросы по теме