локальной сетью, а POST разрешить только из интернета?
Пробовал такое решение:
nginx.ingress.kubernetes.io/configuration-snippet: |
limit_except GET {
allow 10.0.0.0/8;
allow 172.16.0.0/12;
allow 192.168.0.0/16;
deny all;
}
POST ограничивается в любом варианте, и показывает 503 не зависимо от RemoteIP
А ты уверен что в твой под ingress прилетает корректный remoteIP?
limit_except только на уровне location работает Ну и твой конфиг как раз запрещает для любых запросов кроме GET, для POST PUT, ... действуют запреты в твоем случае, а для GET нет
Да, судя по логам ingress пода 503 выдается c локального RemoteIP.
у тебя в конфиге не то что ты описал в задаче. Ты запрещяешь все типы запросов КРОМЕ GET http://nginx.org/ru/docs/http/ngx_http_core_module.html#limit_except
если POST прописать - то GET 503ю уже выдает. Вот хочу понять как их разрулить то по сетям.
прочитай доку про limit_except Потому что если POST прописать туда, то ограничения будут дейсвтвовать на все типы запросов КРОМЕ POST =) Ну и remote_addr конечно клиентский должен быть
А почем 5** а не 4**?
читал уже ( ограничить я как раз могу, выше пример как раз из доки и использовал. Но мне нужно разрешить все запросы, только в локалке, а с глобала - должен работать только POST. Получается, что через limit_except не получится ограничить их?
limit_except GET POST UPLOAD HUEMBUEM { allow 10.0.0.0/8; allow 172.16.0.0/12; allow 192.168.0.0/16; deny all; }
limit_except POST PUT DELETE MKCOL COPY MOVE PROPFIND OPTIONS PROPPATCH LOCK UNLOCK PATCH { allow 10.0.0.0/8; allow 172.16.0.0/12; allow 192.168.0.0/16; deny all; } что-нибудь такое По идее это разрешит GET HEAD только с локалки, остальное можно откуда угодно
Попробовал так указать (до этого только POST и GET менял местами). Но увы. Так же 503. {—-"httpRequest":{"requestMethod": "GET", "requestUrl": "data-collector.dev.ru/api/v1/register", "status": 503,"requestSize": "132", "responseSize": "", "userAgent": "curl/7.68.0", "remoteIp": "172.24.17.212", "referer": "", }}
а в переменную nginx $remote_addr точно этот ip 172.24.17.212 попадает? Смотри как оно в nginx.conf собралось Ну и должно не 503 выдвать в случае срабатывания а 403. То есть это не limit_except срабатывает А лог твой не из nginx
172.24.17.212 - это IP одного из мастеров. На нем же ingress контроллер. Логи я из ingress контроллера смотрю, это точно логи nginx. в поде если смотреть, то там в /etc/nginx/nginx.conf limit_except добавляется в основной location / далее только proxy_pass на балансер. limit_except POST PUT DELETE MKCOL COPY MOVE PROPFIND OPTIONS PROPPATCH LOCK UNLOCK PATCH { allow 10.0.0.0/8; allow 172.16.0.0/12; allow 192.168.0.0/16; deny all; } proxy_pass http://upstream_balancer; proxy_redirect off;
ну что-то странное, если срабывает deny, nginx 403 возвращает. что-то сломано
А если limit_except убрать то 200?
да, если убрать - то все прекрасно ходит
А если оставить только GET то тоже 200 на GET?
Обсуждают сегодня