Настройка среды разработки с помощью Iptables

Я пытаюсь настроить среду разработки, и все мои приложения разделены на две части. Доступ к интерфейсу ReactJS осуществляется по адресу http://127.0.0.1:3000 а внутренний конец Ruby находится по адресу http://127.0.0.1:3001 .

Я добавил эти две строки в мой /etc/hosts :

 127.0.0.2 myapp.dev 127.0.0.3 api.myapp.dev 

Таким образом, когда я делаю запрос на браузер, например http://myapp.dev , мне нужно его перенаправить на http://127.0.0.1:3000 . И когда мой интерфейс делает вызов AJAX API, используя http://api.myapp.dev , мне нужен этот запрос, перенаправленный на http://127.0.0.1:3001 .

Мне нужно направить все запросы от 127.0.0.2 до 127.0.0.1:3000 и все запросы от 127.0.0.3 до 127.0.0.2:3001 .

Я знаю, что это можно сделать, настроив обратный прокси. Но по многим причинам я хотел бы знать, можно ли это сделать с помощью IPTABLES. И если да, то как это сделать.

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

Чтобы перенаправить доступ с 127.0.0.2:80 до 127.0.0.1:3000 , вы можете сделать что-то вроде:

 # iptables -t nat -A PREROUTING -p tcp -d 127.0.0.2 \ --dport 80 -j REDIRECT --to-port 3000 # iptables -t nat -A OUTPUT -p tcp -d 127.0.0.2 \ --dport 80 -j REDIRECT --to-port 3000 

Первое правило (в PREROUTING ) будет соответствовать трафику, происходящему откуда-то, кроме вашего локального хоста. Второе правило (в цепочке OUTPUT ) будет соответствовать трафику, исходящему от вашего локального хоста.

Обратите внимание, что правила в цепочке iptables обрабатываются в порядке , поэтому, если в вашем брандмауэре есть соответствующие правила, которые соответствуют этим правилам, результаты могут быть не такими, какие вы ожидаете.

Для получения дополнительной информации прочтите информацию о цели REDIRECT на странице руководства iptables-extensions .