Рейтинг:1

Как я могу ограничить доступ с внешних IP-адресов для местоположения ngnix

флаг cn

Я хочу ограничить доступ к местоположению ngnix с внешних IP-адресов. Я добавляю следующую конфигурацию в файл конфигурации ngnix, но я не уверен, что это правильный способ сделать это. Есть ли лучшие альтернативы для ограничения доступа внешних IP-адресов к местоположению?

карта $proxy_add_x_forwarded_for $remote_ip {
    по умолчанию $proxy_add_x_forwarded_for;
    "" $http_x_real_ip;
}
карта $remote_ip $isinternal {
    ~^127\. 1;
    ~^10\. 1;
    ~(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.) 1;
    ~^192\.168\. 1;
    по умолчанию 0;
}

...

местоположение / приложение / снайпер {
    если ($ isinternal != 1) { return 403; }
    ...
}

Заранее спасибо...

Рейтинг:2
флаг us

Вы должны использовать nginx гео модуль для карт IP-адресов. Ваша конфигурация будет такой:

гео $внутренняя {
    по умолчанию 0;
    127.0.0.0/8 1;
    10.0.0.0/8 1;
    172.16.0.0/20 1;
    192.168.0.0/24 1;
}

местоположение / приложение / снайпер {
    если ($внутренний != 1) {
        вернуть 403;
    }
}
Kemal Kaplan avatar
флаг cn
Tero спасибо за ответ, есть ли у вас какие-либо комментарии для получения реального IP? Есть ли лучший способ получить настоящий IP-адрес, где я ищу http_x_real_ip и _x_forwarded_for?
флаг us
Если вы находитесь за прокси-сервером, я бы использовал https://nginx.org/en/docs/http/ngx_http_realip_module.html, чтобы получить IP-адрес.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.