문제

내 웹 사이트가 커지고 있습니다. 단일 서버 사본에서 모든 기능을 실행하는 대신 다른 서버 그룹에 기능 세트를 분할해야합니다. Windows 네트워크로드 밸런싱 설정에 8 개의 동일한 서버가 있습니다.

문제는 : URL 공간을 동일하게 유지해야한다는 것입니다. 실행 가능한 솔루션은 무엇입니까? 기능 세트에 대한 새 도메인을 시작하고 싶지 않습니다. 일부 URL 기반 재 작성/라우팅 기능 (?!?)과 함께 어떤 종류의 역전 프록시를 생각하고 있습니다. 소프트웨어 또는 하드웨어 측면에서 권장 사항이 있습니까? 이것은 필요한 기능이 없으므로 WNLB 설정을 대체 할 것입니다.

도움이 되었습니까?

해결책

실제로로드 밸런싱을 구현하기위한 몇 가지 솔루션이 있습니다.

  1. DNS 라운드 로빈
  2. DNS로드 밸런싱 (LBNAMED 포함)
  3. 프록시 라운드 로빈
  4. 하드웨어/TCP 라운드 로빈

나는 1)과 2)가 여기서 선택 사항이 아니라는 것을 이해했습니다 ... 돈이 있다면 정말 고성능 요구, 4). 그렇지 않으면 3).

프록시 라운드 로빈의 경우 다시 몇 가지 솔루션이 가능합니다. Apache Mod_rewrite, Apache mod_proxy, 오징어 (그리고 내가 모르는 다른 많은 사람들).

  • "Dumb"로드 Balacing의 경우 Apache Mod_rewrite의 예가 있습니다. URL 재 작성 가이드 (보다 프록시 처리량 라운드 로빈 부분).

  • Apache Mod_proxy는 클라이언트를 인터넷에 연결하는 대리자 역할을 할 수 있지만 일반적으로 URL을 다른 서버로 리디렉션하기 위해 리버스 프록시로 사용됩니다.. 캐시 기능은 없지만 (mod_cache 및 mod_rewrite와 함께 사용할 수 있습니다 ...).

  • 오징어는 프록시 캐시이며 일반적으로 클라이언트를 인터넷에 연결하는 데 사용됩니다. 그러나 리버스 프록시로 사용하고 요청을 캐시하고 컨텐츠 전달을 가속화하도록 구성 할 수 있습니다.

보시다시피, 그 중 하나를 선택하는 것은 프록시를 원하는대로 무엇과 방법에 달려 있습니다. 귀하의 경우 Linux에서 캐싱을 원하는 경우 Apache Mod_proxy 또는 Squid를 실행하는 것을 고려합니다 (옵션 인 경우).

하드웨어와 관련하여 저는 전문가가 아니지만 "중간"에서 "중간"전용 서버로 충분해야한다고 생각합니다. 모든 요청 이이 컴퓨터를 거치는 것을 잊지 마십시오. 크기는 상당한 것으로 보이는 트래픽에 크게 의존합니다. 이를 위해서는 실제 데이터를 파기가 필요할 수 있습니다.

다른 팁

8 개의 서버가있는 경우 7 개 서버를 사용하여 작업 부하를 공유하고 프론트 엔드 서버 1 개를 사용하여 프록시 역할을하는 것이 좋습니다.

프론트 엔드 서버는 Apache를 실행하고 mod_proxy를 사용하여 각 HTTP 요청을 7 개의 백엔드 서버 중 하나에 위임 할 수 있습니다. 예를 들어, 필요한 경우 들어오는 URL을 기반으로 작업을 위임하여 Mod_proxy를 설정하여 비디오를 제공하는 서버 하나, 블로그에서 2 개의 서빙 블로그 항목 및 다른 작업을 수행 할 수 있습니다.

프론트 엔드 서버는 매우 가벼울 것입니다 : 아파치 실행 및 기타는 거의 없습니다. Squid 또는 Apache의 mod_cache를 사용 하여이 프론트 서버의 정적 컨텐츠를 캐시하여 이미지, JS, CSS 및 기타 정적 컨텐츠에 대한 요청이 캐시 된 후에는 백엔드 7 서버에 도달하지 않도록 할 수도 있습니다.

편집 : 방금 Pascal의 의견을 읽었고 그는 같은 것을 제안하고 있습니다. +1을 수정하겠습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top