Iptables를 사용하여 개발 환경 구축

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.3127.0.0.2:3001

역방향 프록시를 설정하면 이 작업을 수행할 수 있다는 것을 알고 있습니다. 그러나 여러 가지 이유로 IPTABLES를 사용하여 이 작업을 수행할 수 있는지 알고 싶습니다. 그렇다면 무엇을 해야 할까요?

미리 감사드립니다!

답변1

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

체인의 첫 번째 규칙은 PREROUTINGlocalhost가 아닌 다른 곳에서 들어오는 트래픽과 일치합니다. 체인의 두 번째 규칙은 OUTPUTlocalhost의 트래픽과 일치합니다.

iptables 체인의 규칙이 처리됩니다.~을 위한, 따라서 이러한 규칙보다 먼저 일치하는 기존 규칙이 방화벽에 있는 경우 결과가 예상과 다를 수 있습니다.

자세한 내용은 REDIRECTTarget 에 대해 읽어보세요.iptables 확장맨 페이지.

관련 정보