2014-04-12 2 views
7

나는 당신의 nginx 뒤에 하나 개 uWSGI 인스턴스 내에서 여러 프로세스를 시작할 수 있습니다 것으로 나타났습니다 nginx :여러 서버 프로세스는

upstream my_servers { 
    server unix:///tmp.uwsgi1.sock; 
    server unix:///tmp.uwsgi2.sock; 
    #... 
} 

이 두 가지 전략의 차이점은 무엇이며 다른 전략보다 우선적으로 적용됩니까?

nginx (첫 번째 경우)가 수행 한로드 균형 조정과 uWSGI (두 번째 경우)가 수행 한로드 균형 조정은 어떻게 다릅니 까?

nginx는 여러 호스트의 프론트 서버가 될 수 있습니다. uSSGI가 단일 인스턴스 내에서이를 수행 할 수 있습니까? 특정 uWSGI 기능은 단일 uWSGI 프로세스 (예 : 공유 메모리/캐시) 내에서만 작동합니까? 그렇다면 첫 번째 접근법에서 두 번째 접근법으로 확장하는 것이 어려울 수 있습니다 ....

답변

7

차이점은 uWSGI의 경우 "실제"로드 균형 조정이 없다는 것입니다. 첫 번째 무료 프로세스는 항상 응답하므로이 방법은 여러 인스턴스간에 nginx로드 균형 조정을 수행하는 것보다 낫습니다 (로컬 인스턴스에만 해당). 당신이 고려해야 할 것은 "천둥 무리의 문제"입니다. 그 의미는 여기에 노출됩니다 : http://uwsgi-docs.readthedocs.org/en/latest/articles/SerializingAccept.html.

마지막으로 모든 uWSGI 기능은 다중 프로세스/다중 프로세스 (및 그람 스레드)를 인식하므로 캐싱 (예 :)이 모든 프로세스에서 공유됩니다.

+3

실제로 uWSGI 프로세스에서 어떤 데이터가 공유되는지 자세히 설명해 주실 수 있습니까? 프로세스가 독립적으로 실행되지 않습니까? –

+1

알고 싶습니다. – ruipacheco