Разрешить любые IP-адреса для private_url, но разрешить только IP-адреса из белого списка для public_url в nginx - PullRequest
1 голос
/ 12 октября 2019

У меня есть приложение Java Spring в WebSphere за nginx. У меня есть
my_website.com/private_url
my_website.com/public_url
В настоящее время оба адреса доступны с любого IP. Как правильно указать nginx принимать запросы только к my_website.com/private_url из списка подсетей из белого списка?

1 Ответ

1 голос
/ 12 октября 2019

Чтобы запретить доступ всем, кроме определенных адресов к определенному каталогу или запросу, добавьте этот блок местоположения

location ^~ /private_url {
  allow x.x.x.x/32;
  allow x.y.x.x/16; 
  deny all;
}

Правила проверяются последовательно сверху вниз, пока не будет найдено первое совпадение.

Вы должны добавить это в nginx.conf, но вы не хотите редактировать этот файл каждый раз, когда хотите добавить новый ip. Поэтому вместо этого запишите все ip-адреса в whitelist.conf в домашнем каталоге nginx и включите этот файл в блок местоположения.

whitelist.conf

allow x.x.x.x/32;
allow x.y.x.x/16;

nginx.conf

location ^~ /private_url {
  include whitelist.conf; 
  deny all;
}
...