Nginx+웹 서버는 로드 밸런싱을 달성할 수 있지만 하나의 Nginx도 제한되어 있습니다. 볼륨이 높지 않은 경우 상위 계층에서 로드 밸런싱을 달성하는 방법. DNS나 CDN이라면 여러 전산실을 구축하면 필연적으로 여러 전산실에서 데이터 동기화 문제가 발생하게 됩니다. 이에 대한 좋은 정보가 있나요?
답변:
이 정보는 기본적으로 하나씩 불완전합니다. 아마도 기본 아키텍처를 알려드릴 것입니다: (추천 학습: Nginx 튜토리얼 )
DNS 서버, 자금이 충분하다면 BGP 컴퓨터실, 2-3 DNS 서버 밸런스, 일반적으로 바인딩 소프트웨어를 사용하는 것이 좋습니다. 자금이 부족하다면 국내 dnspod와 같은 전문 DNS 서비스를 구입할 수 있습니다.
CDN 서버, 처음에 번거로움을 덜고 싶다면 차이나캐시 같은 전문업체의 서비스를 구매하면 되지만, 개발할수록 비용은 점점 더 높아지게 됩니다. 직접 구축한다면 별도로 구축하여 차이나텔레콤, 차이나유니콤, 차이나모바일 등 서로 다른 전산실에 서버를 배치하고 DNS를 통해 동적 해석을 수행할 수도 있다. 매우 큰 규모의 웹사이트에는 Squid를, 중대형 웹사이트에는 Nginx를, 내부용으로는 Varnish를 사용할 수 있습니다.
프론트엔드가 균형을 이루고 있다면, 하드웨어 장비, 수십만 대를 사용할 수 있습니다. 이미 기술팀이 있다면 Nginx/Haproxy+Keepalived를 사용하여 자신만의 프런트엔드를 구축할 수 있습니다. 무작위, 가중치, IP 및 URL을 포함하여 균형 조정 방법은 비교적 유연합니다.
동기화 문제는 동기화 대상에 따라 다릅니다. 일반적으로 실시간 파일 동기화가 가능합니다. 그러나 데이터베이스의 경우 동기화 방법은 특정 유형에 따라 다릅니다.
백엔드 애플리케이션 서버와 데이터베이스 클러스터는 트래픽 계획에 따라 달라집니다.
여러 Nginx 장치 간에 균형을 유지하는 방법에는 여러 가지가 있습니다.
1. 각 Nginx 장치에는 공용 네트워크 주소가 있습니다. 도메인 이름에서 동일한 도메인 이름에 여러 방향을 설정하는 것이 라운드 로빈을 달성하는 가장 쉬운 방법입니다. 그러나 결함 차단 속도는 느려집니다.
2. 하나의 공용 네트워크 Nginx는 업스트림 기능, 휠, IP 및 URL을 통해 인트라넷의 여러 nginx에 배포됩니다. 하지만 공용 네트워크의 nginx가 Down되면 내부 네트워크의 연결이 완전히 끊어집니다.
3. 한 쌍의 공용 네트워크 Nginx와 3개의 공용 네트워크 IP가 Keepalive를 통해 고가용성을 달성한 다음 인트라넷으로 업스트림됩니다.
4. 하드웨어 밸런싱 서버가 프런트엔드에 있고, 하드웨어를 통해 콘텐츠가 다른 서버와 밸런싱됩니다.
당신이 언급한 가설은 방법 2, 3, 4를 통해 실현될 수 있습니다.
위 내용은 여러 nginx 클러스터의 작동 방식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!