172 похожих чатов

Всем привет, хочу запретить доступ к /api/v1/docs при этом

разрешить запросы на /api :

annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/configuration-snippet: |
location ~ ^/api/v\d+/docs {
return 403;
}

spec:
ingressClassName: nginx
...
rules:
...
- host: partner.force2.ru
http:
paths:
- backend:
service:
name: frontend-service
port:
number: 80
path: /
pathType: Prefix

- backend:
service:
name: interaction-service
port:
number: 80
path: /api/
pathType: Prefix

можете объяснить почему не работает и как лучше сделать в моем случае?

18 ответов

48 просмотров

\d+ - а такая регулярка работает в локейшенах?боюсь тот лучше [0-9]

а ещё тебе наверное логичнее сервер сниппет использовать, чтобы глобально 1 раз прописалось, а не внутрь всех локейщенов

потому что когда включаешь регулярки, у тебя они включаются для всех paths а регулярки в nginx работают по принципу какая первая по порядку совпала, та конфигурация и используется НО!!! nginx ingress controller сортирует paths по убиыванию для таких случаев НО!!! snippet никак не учитывается в этой сортировке я вам советую глянуть какой в итоге конфиг получился для хоста k exec nginx-ingress-pod-name -- cat /etc/nginx/nginx.conf и искать домен затем смотреть в каком порядке locations и где стоит snippet кстати вам для location нужен server-snippet, а не configuration-snippet

Dmitry Sergeev 🇺🇦
потому что когда включаешь регулярки, у тебя они в...

много с чем согласен, а кой чего ну вот нет)) потому что когда включаешь регулярки Так и пофиг что он включает и насрать какая последовательность)), ведь оно добавляется внутрь каждого локейщена)), а значит сработает))

Dmitry Sergeev 🇺🇦
не понял, что добавляется внутрь location'а?

location ~ ^/api/v\d+/docs { return 403; } Это добавляется внутрь каждого локейшена, а патчи в ингрессе порождают локейшены

Владимир Муковоз
location ~ ^/api/v\d+/docs { return 403;...

ааа, configuration-snippet внутрь каждого добавляется. Понял но я такие конфигурации не люблю (вложенные локейшены)

кстати с 1.9 по умолчанию сниппеты отключены

Dmitry Sergeev 🇺🇦
ааа, configuration-snippet внутрь каждого добавляе...

вложенные локейшены, особенно когда вложенный локейшен из ругулярки это хорошо, я все регулярки стараюсь внутрь сувать)

Dmitry Sergeev 🇺🇦
кстати с 1.9 по умолчанию сниппеты отключены

оно даже не задеплоится если он не включил)) А на сколько я понял у него не срабатывает, но деплоится

ваще странно что этот конфиг не работает, если эта штука засовывает в каждый location этот snippet. по идее должно было сработать 🤔, и не важно что верхние location из-за use-regex станут регулярками

Sergei Mikhaltsov
Все?

да хз, но это можно отключить

Dmitry Sergeev 🇺🇦
ваще странно что этот конфиг не работает, если эта...

меня смущает \d в локейшене, оно разве там работает так?

Владимир Муковоз
меня смущает \d в локейшене, оно разве там работае...

ну если в nginx.conf в таком виде попало, то вроде должно. В nginx вроде PCRE синтаксис регялярок но я бы тоже предпочел [0-9]+

Dmitry Sergeev 🇺🇦
ну если в nginx.conf в таком виде попало, то вроде...

ну попасть оно туда что угодно попасть может, но как будет работать вопрос другой

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
9
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Карта сайта