2009-12-11 4 views
4

로드 밸런서 뒤에 5 개의 노드가 있으며 장고 기반 사이트의 최적 구성을 결정하려고합니다.Django 클러스터 배치

각 노드는 Postgres, mod_wsgi, Apache, Lighttpd, memcached, pgpool2 (데이터베이스 복제 용) 및 glusterfs (미디어 파일 복제 용)에 액세스 할 수 있으며 우분투 8.04LTS를 실행 중입니다.

지금까지는 "master"Postgresql을 실행하는 하나의 마스터 노드에 대해 Apache/Lighttpd/memcached/pgpool2를 모두 읽고 실행하는 4 개의 노드가 설정되었습니다. 4 개의 웹 노드 각각은 pgpool을 통해 마스터로부터 복제를 위해 Postgres를 실행합니다.

제 질문은 다음과 같습니다.이 설치를 구성하는 방법 및/또는 가능한 경우 단일 실패 지점이 없도록 변경하겠습니까?

답변

0

설정이 나에게 잘 어울립니다. 나는 gunicorn/uwsgi + nginx을 사용할 것을 고려할 것입니다. pgpool2가 더 많은 것을 제공하지만 pbbouncer를 사용하여 벤치마킹 할 수도 있습니다.

1

설치 환경이 정확히 무엇인지 알기는 어렵지만 좋은 설치와 비슷합니다. 메모리 등의 측면에서 당신이 처리 할 것으로 예상되는 트래픽.

Django의 multidb 지원을 사용하고 읽기 전용 postgres 인스턴스 (DB 라우팅을 사용하여 특정 응용 프로그램에서만 읽기 전용으로 지정)를 고려할 수 있습니다. 이것은 꽤 좋은 속도 향상을 제공 할 수 있습니다. 그리고 현재 데이터베이스 작업의 규모에 따라 단일 포스트그레스 인스턴스에서 병목 현상을 일으킬 수 있습니다.

@ashwoods가 제안했듯이, 그것은 gunicorn과 nginx를 조사하고있을 수도 있습니다. 나는 mod_wsgi를 실행하기 위해서만 아파치를 사용하는 순간을 추측합니까? 그리고 정적 파일에 대한 lighttpd? nginx를 사용하면 수많은 wsgi 서버와 정적 파일에도 사용할 수 있습니다.