Мне нужно назначить разные IP-адреса различным процессам (в основном программам PHP и Ruby), запущенным на моем сервере Linux. Они будут делать запросы к различным серверам, включая ситуацию, когда процессы, подключающиеся к одному и тому же внешнему серверу, должны иметь разные IP-адреса.
Как этого добиться?
Мне подойдет любой вариант (общесистемный или специфичный для PHP / Ruby, с использованием прокси-серверов и т. Д.).
Несколько вариантов:
Вы также можете использовать сетевые пространства имен, если это позволяет ядро. как описано здесь http://blog.scottlowe.org/2013/09/04/introduction-linux-network-namespaces/
Наконец, я решил свой конкретный случай с запуском nginx в качестве обратного прокси, доступного только с localhost, используя proxy_bind директива.
Из моих скриптов я должен делать запросы к чему-то вроде http: // локальный хост / nginx-прокси-ip-N / https: //api.example.com/? q = 123