NGINX: блокировать все внешние IP, кроме IP сервера, на котором размещен ReactJS?
Может ли кто-нибудь помочь, как настроить nginx так, чтобы он принимал только IP сервера, на котором размещен ReactJS? Я перепробовал множество вариантов, но безрезультатно. Я всегда вижу, что ReactJS использует IP клиента, на котором пользователь в данный момент просматривает сайт (из-за, я полагаю, его клиентской природы). К сожалению, мне нужно блокировать все другие запросы, чтобы защитить мой Django rest api от внешних запросов. Кстати, в моем Django приложении используется обратный прокси-сервер nginx. Как вы, ребята, делаете это?
Я думаю, вы серьезно не поняли, как работает ваше приложение. Если только вы не делаете что-то очень-очень странное, оно обычно работает следующим образом:
- Браузер пользователя (клиент) получает код ReactJS с сервера, на котором он размещен .
- Код ReactJS выполняется в браузере пользователя
- Все запросы к вашему REST API будут исходить из браузера пользователя, выполняющего ReactJS код, т.е. приходить с клиентской машины, а не с сервера, на котором размещен ReactJS код
- Сервер, на котором размещен ReactJS код, просто возвращает ReactJS код клиенту и даже не взаимодействует с сервером, на котором размещен Django REST API .
Таким образом, то, что вы пытаетесь сделать, ошибочно и на самом деле только ограничит ваших пользователей.
В качестве примечания, вы можете использовать несколько сложных методов, чтобы быть уверенным, что запросы API do исходят от браузера, выполняющего ваш код ReactJS (т.е. законное использование вашего API), а не от других инструментов, но это далеко не гарантия и в большинстве случаев не имеет практического значения.