django 앱이 있는데 서버 앞에 Varnish를 설정하고 싶습니다. 에서 다른 저기 serverfault 스레드 누군가가 니스의 앞에 Nginx에 퍼팅 제안했다.
캐싱 서버의 Varnish 앞에 Nginx를 넣어야합니까? 그렇다면 앱 서버에서 Nginx를 사용해야합니까?
django 앱이 있는데 서버 앞에 Varnish를 설정하고 싶습니다. 에서 다른 저기 serverfault 스레드 누군가가 니스의 앞에 Nginx에 퍼팅 제안했다.
캐싱 서버의 Varnish 앞에 Nginx를 넣어야합니까? 그렇다면 앱 서버에서 Nginx를 사용해야합니까?
답변:
계층간에로드 밸런싱 기능이있는 대규모 서버 팜이 아니라 총 1-3 개의 프런트 엔드 서버를 이야기하고 있습니까?
nginx를 Vanish 앞에두면 HTTP 압축을 즉시 수행 할 수 있습니다. 이는 성능 모범 사례이지만 생략 할 수 있습니다. (니스의 콘텐츠는 압축되지 않은 상태로 유지되므로 ESI Includes가 작동하므로 Vary 헤더 / 브라우저 일치에 따라 동일한 객체의 여러 캐시 된 버전을 처리 할 필요가 없습니다.)
앱 서버의 nginx와 관련 하여 mod_wsgi 를 사용하는 Apache는 오늘날 새로운 Django 설치를 권장하는 가장 일반적인 방법이 아닌가? Django의 Apache / mod_wsgi보다 nginx / fastcgi를 사용해야하는 매력적인 이유를 모르겠습니다. 하지만 장고 전문가에게 조언을 구해야합니다.
nginx에없는 매력적인로드 밸런싱 기능이있는 Varnish에 대해서는 그 기능이 무엇인지 알 수 없습니까? 바니시는 랜덤 및 라운드 로빈 밸런싱을 가지고 있습니다. nginx에는 라운드 로빈, 클라이언트 IP 및 일관된 해싱이 있습니다. Varnish에는 큰 이점이 보이지 않습니까? VCL 또는 Varnish의 우아한 구성 다시로드 또는 다른 것입니까?
소규모 1-3 서버 설정의 경우, 내가 할 것이라고 생각합니다
광택-> Apache / mod_wsgi / 장고
아니면
오징어-> 아파치 / mod_wsgi / 장고
bandwith가 비싸지 않다면 단순성을 위해 HTTP 압축을 무시하십시오.
최신 정보:
Graham Dumpleton은 아래에 귀중한 의견을 작성했습니다. 그는 VPS의 블로그 또는 캐싱없는 소규모 웹 팜과 같은 매우 일반적인 설정에 대해 언급합니다.
nginx-> Apache / mod_wsgi / 장고
이것은 몇 가지 이유로 매우 좋은 솔루션입니다.
처음에 이것을 언급하지 않은 이유는 OP가 고성능 캐싱 솔루션 인 Varnish를 필요로했기 때문입니다. nginx / Apache / mod_wsgi 콤보는 Varnish와 일치하는 수준의 성능과 유연성으로 캐싱을 수행 할 수 없습니다.
Nginx, Varnish 및 Apache / mod_wsgi / Django를 성공적으로 사용하고 있습니다. 다음 구성으로 시작했습니다.
Nginx-> Apache / mod_wsgi / 장고
아파치에 상당한 부하가 걸리기 시작하면 Varnish를 추가했습니다.
Nginx-> 광택-> Apache / mod_wsgi / 장고
Nginx를 일종의 "URL 라우터"로 사용합니다. Django 관리자 요청은 Nginx에서 Apache로 직접 전송됩니다. 클라이언트 요청은 Nginx에서 Varnish로 전송되어 Apache의 요청을 캐시하고 앱 서버를 사용할 수없는 경우 캐시에서 "유예"항목을 제공합니다.
내 Nginx 서버는 특정 정적 컨텐츠 (예 : 이미지, CSS 및 자바 스크립트 파일)를 직접 제공합니다.
일반적으로 성능이 우수합니다. 나는 언급해야 할 몇 가지 경고를 발견했습니다.