Какова цель NGINX и Gunicorn, работающих параллельно?


многие развертывания приложений Django через EC2 Amazon используют HTTP-серверы NGINX и Gunicorn.

Мне было интересно, что они на самом деле и почему оба используются параллельно. Какова цель запуска их обоих параллельно?

1   51   2012-11-01 22:00:10

1 ответ:

Они не используются параллельно. NGINX - это обратного прокси-сервера. Он первый в очереди. Он принимает входящие соединения и решает, куда они должны идти дальше. Он также (обычно) обслуживает статические носители, такие как CSS, JS и изображения. Он также может делать другие вещи, такие как шифрование через SSL, кэширование и т. д.

Gunicorn является следующим слоем и является сервер приложений. NGINX видит, что входящее соединение для www.domain.com и знает (через файлы конфигурации), что он должен передать это соединение на Gunicorn. Gunicorn-это WSGI сервер, который в основном:

простой и универсальный интерфейс между веб-серверами и веб-приложений или фреймворков

задача Gunicorn заключается в управлении и запуске экземпляра(ов) Django (аналогично использованию django-admin runserver во время разработки)

отличие от этой установки заключается в использовании Apache с mod_wsgi модуль. В этой ситуации, сервер приложений на самом деле является частью Apache, работает как модуль.