2012-08-02 12 views
8

Eksperymentuję z różnymi konfiguracjami wdrażania aplikacji django. Mój pierwszy wybór polegał na użyciu prostego serwera apache z mod_wsgi, który wcześniej zaimplementowałem do prywatnego użytku. Ponieważ obecne wdrożenie jest do użytku publicznego, szukam różnych opcji. Na podstawie informacji dostępnych online, wydaje się, że dobrze jest mieć nginx do wyświetlania statycznych treści oraz odwrotnego proxy dla dynamicznego serwera treści. Teraz, biorąc pod uwagę moją wcześniejszą wiedzę na temat Apache, rozważałem użycie tego samego dla dynamicznej zawartości. Ale potem natknąłem się na Gunicorn, a później na uWSGI. Obecnie wdrażam uWSGI. Widzę, że pozwala na wiele protokołów, w tym http.Czy protokół uwsgi jest szybszy od protokołu http?

Jakie są zalety używania jednego protokołu z drugim. Rozumiem, że biorąc pod uwagę moje wymagania dotyczące skalowania aplikacji na wiele serwerów, oznacza to, że nie mogę używać gniazd Uniksowych, które wydają się zalecane w niektórych samouczkach. Inne opcje to gniazdo TCP z uwsgi lub z http. Czy mają wiele teoretycznych różnic. Nie znam szczegółów protokołu uwsgi i chciałbym wiedzieć, czy używanie go przez protokół http przyspieszyłoby działanie?

Odpowiedz

15

Ostatecznie twoi zatory nie będą w poszczególnych mechanizmów trasowania dla żądań, chyba że naprawdę syf konfigurację. Tak więc prawdopodobnie strata czasu, aby skupić się zbytnio na podejmowaniu decyzji dotyczących rzeczy na tym poziomie.

Idź obejrzeć moją rozmowę z PyCon w kontekście kontekstu, w którym naprawdę będą wąskie gardła.

http://lanyrd.com/2012/pycon/spcdg/

+0

Widziałem swoją rozmowę i miał wrażenie, że będzie to odpowiedź. Ale czy tylko dla celów akademickich wiedza jest szybsza? –

+3

Różnica polega na tym, że w HTTP odbiorca musi przeanalizować separator pól nagłówka żądania i znacznik końca linii. W uwsgi do danych włączane są binarne bajty długości, więc odbiorca już wie, jaka jest długość pola i nie musi go analizować. Więc możesz zaoszczędzić minutę czasu używając uwsgi, ale naprawdę dzielisz włosy. Projektowanie oprogramowania po stronie serwera będzie znacznie ważniejsze. Niepoprawne kodowanie w algorytmie do jego obsługi szybko usunie wszelkie oszczędności. Nawet autor uWSGI uzna, że ​​na tym poziomie różnica jest bardzo niewielka. –

Powiązane problemy