먼저 내 상황을 설명해 드리겠습니다. 나는 상당히 인기있는 웹 사이트를 부수적 인 프로젝트로 운영하고 있으므로 실제로 많은 돈을 투자 할 수는 없습니다. 현재 HAProxy가있는 서버가 하나만 있고 Apache에 일반 요청을 보내고 모든 정적 파일 요청을 Lighttpd에 보냅니다. 이것은 모든 PHP 및 post 요청이 Apache에 의해 처리되고 모든 이미지가 더 빠른 Lighttpd로 전송되기 때문에 실제로 잘 작동합니다 (사이트는 대부분 이미지이므로 매우 중요합니다). 짧은 URL도 매우 중요하므로 HAProxy를 사용해야하는 이유 때문에 이미지를 제공하기 위해 하위 도메인을 설정할 필요가 없습니다.
내가 사용하고있는 아주 저렴한 계량되지 않은 대역폭을 제공하는 호스팅 제공 업체를 찾았는데, 100mbs 네트워크 카드가 처리 할 수있는만큼의 대역폭을 제공 할 때 문제가 발생하여 두 번째 서버가 필요합니다.
나는 내 선택에 대해 많은 생각을했다. 그래서 나는 당신에게 각각을 설명 할 것이다. 바라건대 당신은 나에게 가장 적합한 옵션에 대한 통찰력을 제공 할 수도 있고, 아직 내가 생각하지 못한 다른 옵션이있을 수도 있습니다.
요구 사항 :
대역폭 분배조차도 필수입니다. 나는 매우 강력한 서버를 가지고 있으므로 스케일 업은 옵션이 아닙니다. 더 많은 대역폭을 확보하려면 수평 확장이 필요합니다.
짧은 URL. 이미지를 제공하기 위해 img.example.com과 같은 하위 도메인을 설정하지 않습니다. example.com/image.jpg는 지금의 모습이며 실제로 어떻게 유지하고 싶습니까? 그러나 다른 방법이 없다면 이해합니다.
요청을 처리하는 clostest 서버는 정말 좋을 것이지만 필수는 아닙니다. 명심해야 할 것.
HAProxy에서로드 밸런싱 :
- 어쨌든 이미 HAProxy를 사용하고 있기 때문에 정말 쉽습니다. 그러나 대역폭을 분배 할 때 문제가 발생한다고 생각합니다. 나는 이것에 틀렸을 수도 있지만 HAProxy는 서버가 요청을 처리 한 서버로 요청을 보낸 다음 HAProxy를 통해 클라이언트로 다시 보내지 않습니까? 따라서 모든 트래픽이로드 밸런서를 통해 다시 전송되어 모든 서버가 결합한만큼의 대역폭을 사용하게됩니다.
DNS 라운드 로빈 :
- 이것이 내 최선의 선택 일 수 있습니다. 여러 서버에 웹 사이트를 복제하고 지금하고있는 작업을 수행하십시오. 단점은 한 서버가 다운되면 클라이언트가 여전히 서버로 전송된다는 것입니다. 또한 여러 서버에서 사이트를 복제해야합니다. 정적 파일을 제외한 모든 것을 처리하는 하나의 기본 서버가 있고 두 개의 정적 파일 서버가 있기를 바랐습니다. 나는 이것이 일종의 '가난한 사람들의로드 밸런싱'이었다는 것을 읽었으며 조금 더 정교한 것을 갖는 것이 좋을 것입니다.
직접 서버 반환 :
- 정말 복잡해 보이지만 좋은 옵션 일 수 있습니다. 여전히 특정 URL을 특정 서버로 보낼 수 있습니까? HAProxy와 마찬가지로, 올바른 파일 확장자로 끝나는 모든 URL은 Lighttpd로 전송되고 다른 확장자는 Apache로 전송됩니다. 그래서 비슷한 것이 필요합니다. 마찬가지로 모든 PHP 요청은 밸런싱 소프트웨어를 실행하는 동일한 서버에서 처리되는 반면 모든 jpg 요청은 여러 서버로 전송됩니다.
HAProxy가 Direct Server Return을 지원하면 이상적으로 문제가 해결 될 것입니다. CDN은 정말 비싸기 때문에 CDN을 사용하고 싶지 않으며 결국 부수적 인 프로젝트입니다.
내 문제를 이해합니까? 내가 옳은 것을 설명하지 않았거나 더 많은 정보가 필요하면 알려주십시오.