역방향 프록시 전달

역방향 프록시 전달

당신이 나를 도울 수?

sudo echo "1" > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 1.1.1.1
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 2.2.2.2
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

로드 밸런싱 서버를 생성하기 위해 이러한 iptables 규칙을 사용하고 있습니다. 저는 단지 .mp4 및 .mp3 콘텐츠를 배포하고 있지만 이러한 규칙은 대상 서버 대역폭 대신 이 전달을 위해 사용하는 서버 대역폭을 사용하고 있습니다.

이 문제를 어떻게 해결할 수 있나요? 사용자는 리디렉션 서버 대신 대상 서버 대역폭을 사용해야 합니다. 감사합니다.

답변1

이 문제를 어떻게 해결할 수 있나요? 사용자는 리디렉션 서버 대신 대상 서버 대역폭을 사용해야 합니다. 감사합니다.

일반적으로 다음과 같은 몇 가지 방법이 있습니다.

  1. 라운드 로빈 DNS를 사용하십시오. 모든 서버는 동일한 이름을 공유하지만 IP는 다릅니다. 클라이언트는 임의의 서버를 선택합니다.
  2. 리디렉션을 사용하여 사용자를 적절한 서버로 보냅니다.
  3. 애니캐스트를 사용하세요. 모든 서버는 동일한 IP를 가지고 있습니다. 라우팅 작동 방식으로 인해 사용자는 일반적으로 로컬에 연결됩니다.

라운드 로빈 DNS 및 리디렉션은 일반적으로 사용자가 직접 구성할 수 있습니다. 애니캐스트의 경우 여러 지역에서 BGP를 직접 발표할 수 있어야 하고 전 세계 여러 ISP에 참여할 수 있어야 합니다.

또 다른 훌륭한 아이디어는 단순히 문제를 무시하고 Cloudflare 또는 Akami와 같은 서비스를 앞에 두고 로드 밸런싱을 처리하도록 하는 것입니다. 더 많은 제어를 원하는 경우 Azure 또는 Google Cloud와 같은 클라우드 솔루션에서 콘텐츠를 호스팅할 수도 있습니다. 여기서 Blob Storage에서 항목을 가져오는 데 필요한 로드에 대해 덜 걱정해야 합니다.


규칙의 역할

규칙을 사용하여 패킷의 대상을 다시 작성하고 다른 서버로 보냅니다. ~ 안에덧셈가장 무도회, 백엔드 서버에 패키지가 프런트엔드에서 온 것처럼 보이도록 합니다. 백엔드는 의무적으로 응답하여 응답 패킷을 프런트엔드로 다시 보냅니다. 프런트엔드는 해당 연결이 시작된 테이블을 조회하고 패킷을 원래 클라이언트로 보냅니다. 실제로 라우터인 서버는 헤더를 다시 작성하기 위해 패킷을 터치해야 하며 모든 패킷은 해당 서버를 거쳐야 합니다.

많은 경우 이러한 설정은 많은 의미를 갖습니다. 많은 트래픽을 라우팅하는 것은 다소 쉽지 않으며 구성이 쉽고 강력합니다. 응답하지 않는 서버를 삭제하는 고가용성을 허용하고, 상태 저장이 아닌 로드의 경우 라우터가 트래픽 양을 처리할 수 있는 한 용량을 늘리는 것이 매우 쉽습니다.

관련 정보