Configurando um ambiente de desenvolvimento com o Iptables

0

Estou tentando configurar um ambiente de desenvolvimento e todos os meus aplicativos estão divididos em duas partes. O front-end do ReactJS é acessado em http://127.0.0.1:3000 e o back-end do Ruby está em http://127.0.0.1:3001 .

Adicionei estas duas linhas ao meu /etc/hosts :

127.0.0.2     myapp.dev
127.0.0.3     api.myapp.dev

Dessa forma, quando eu fizer uma solicitação de navegador como http://myapp.dev , preciso que ela seja redirecionada para http://127.0.0.1:3000 . E quando meu front-end fizer uma chamada AJAX para a API usando http://api.myapp.dev , preciso que essa solicitação seja redirecionada para http://127.0.0.1:3001 .

Eu preciso encaminhar todas as solicitações de 127.0.0.2 para 127.0.0.1:3000 e todas as solicitações de 127.0.0.3 para 127.0.0.2:3001 .

Eu sei que isso pode ser feito configurando um proxy reverso. Mas por muitas razões eu gostaria de saber se é possível fazer isso com o IPTABLES. E se sim, como fazer isso.

Obrigado antecipadamente!

    
por Ed de Almeida 24.03.2017 / 19:15

1 resposta

2

Para redirecionar o acesso de 127.0.0.2:80 para 127.0.0.1:3000 , você pode fazer algo como:

# 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

A primeira regra (na cadeia PREROUTING ) corresponderá ao tráfego originado de outro local que não seja o seu host local. A segunda regra (na cadeia OUTPUT ) corresponderá ao tráfego proveniente do seu host local.

Observe que as regras em uma cadeia de iptables são processadas na ordem , portanto, se houver regras existentes em seu firewall que correspondam a essas regras, os resultados podem não ser o esperado.

Para detalhes, leia sobre o REDIRECT target na página do manual iptables-extensions . / p>     

por 24.03.2017 / 20:13