Ограничение нескольких Node.js приложений определенным IP-адресом c на машине с несколькими IPv4-адресами - PullRequest
0 голосов
/ 20 марта 2020

Я буду настраивать машину Ubuntu 19.10, которая имеет один-два проводных сетевых интерфейса с несколькими IP-адресами, назначенными ей (например, 10.0.0.1 и 10.0.0.2).

Как мы можем запустить 2 идентичных Node.js приложения, так что первое использует 10.0.0.1, а второе - 10.0.0.2?

Другими словами, когда первое приложение (использующее 10.0.0.1) запрашивает удаленную службу API, считается, что запрос возник из 10.0.0.1. Первое приложение также прослушивает ответы API, отправленные обратно на 10.0.0.1. Аналогично, второе приложение ограничено только IP-адресом 10.0.0.2.

1 Ответ

1 голос
/ 21 марта 2020

API, который ваше приложение использует для инициирования запроса, вероятно, предоставляет некоторый способ указания локального адреса, с которым должен быть связан запрос. Сделайте так, чтобы один экземпляр вашего приложения указывал 10.0.0.1 в качестве источника всех его запросов, а другой экземпляр должен указывать 10.0.0.2.

Например, если вы строили соединение API на низком уровне уровень с использованием сокета TCP, то вы бы указали желаемый адрес источника в качестве опции localaddr для вызова socket.connect. Однако более вероятно, что вы используете высокоуровневый API, такой как модуль http или https, где вы бы указали желаемый адрес источника в качестве опции localaddr для http.request или https.request вызов.

...