Web технологии

8. Архитектура frontend - backend

Дмитрий Смаль

Frontend и Backend

Общая архитектура

Задачи Frontend (web) сервера

Reverse proxy

Результат: backend занят минимально возможное время.

Настройка проксирования в nginx

Настройка проксирования в nginx

Настройка upstream в nginx

Application сервер

Backend (application) сервер

Роль application сервера заключается в исполнении бизнес-логики приложения и генерации динамических документов.

На каждый HTTP запрос application сервер запускает некоторый обработчик в приложении. Это может быть функция, класс или программа, в зависимости от технологии.

Протоколы запуска приложения

CGI

CGI - Common Gateway Interface

Переменные окружения CGI

FastCGI и SCGI

FastCGI и SCGI

Основная проблема CGI - низкая производительность. Протоколы FastCGI и SCGI призваны решить эту проблему путем демонизации приложения. Иногда это возможно сделать даже без изменения кода CGI приложения.

WSGI

WSGI - актуальный протокол

WSGI, PSGI, Rack - протоколы вызова функции обработчика из application сервера. Сам application server при этом может выполняться в отдельном процессе или совпадать с web сервером. Как правило, при использовании этих протоколов в качестве application сервера выступает отдельный легковесный процесс.

WSGI - обработчик

Web Server Gateway Interface

Переменные environ

Развертывание WSGI

Что ложится на приложение ?