В чем разница между scgi и wsgi? - PullRequest
15 голосов
/ 03 ноября 2008

Какая разница между этими двумя? Что лучше / быстрее / надежнее?

Ответы [ 3 ]

25 голосов
/ 03 ноября 2008

SCGI является независимым от языка средством соединения интерфейсного веб-сервера и веб-приложения. WSGI - это стандарт интерфейса Python для веб-приложений.

Хотя они оба имеют корни в CGI, они довольно различны по объему, и вы действительно могли бы вполне разумно использовать оба сразу, например, имея mod_scgi на веб-сервере, взаимодействующем с приложением WSGI, работающим как сервер SCGI. Существует несколько реализаций библиотеки, которые будут запускать приложения WSGI в качестве серверов SCGI для вас (например, wsgitools, cherrypy).

Они оба «надежны», поскольку вы можете считать спецификацию надежной, а не конкретной реализацией. В эти дни вы, вероятно, написали бы свое приложение как вызываемое WSGI и рассмотрели бы вопрос развертывания отдельно.

Возможно, интерфейс Apache + mod_wsgi (встроенный) может быть на бит быстрее, чем Apache + mod_scgi + (библиотека оболочки SCGI), но, по всей вероятности, он не будет чрезвычайно разные. Более ценным является возможность запуска приложения на различных серверах, платформах и стандартах подключения.

11 голосов
/ 22 апреля 2009

SCGI (как FastCGI) - это (сериализованный) протокол, подходящий для межпроцессного взаимодействия между веб-сервером и веб-приложением.

WSGI - это API-интерфейс Python, соединяющий два (или более) Python-совместимых WSGI-модуля в одном процессе (интерпретатор Python). Один модуль представляет веб-сервер (являющийся либо реализацией внутрипроцессного веб-сервера Python, либо шлюзом к веб-серверу в другом процессе через, например, SCGI). Другой модуль представляет или представляет веб-приложение. Кроме того, ноль или более модулей между этими двумя модулями могут служить в качестве модулей промежуточного программного обеспечения WSGI, выполняющих такие функции, как управление сеансами / файлами cookie, кэширование содержимого, аутентификация и т. Д. В API WSGI используются такие функции языка Python, как итерация / генераторы и передача вызываемого объекта объекты между взаимодействующими WSGI-совместимыми модулями.

9 голосов
/ 03 ноября 2008

Это обе спецификации для подключения веб-приложения к веб-серверу. Одно явное отличие состоит в том, что WSGI происходит из мира Python, и я считаю, что нет никаких не-Python реализаций.

Технические характеристики, как правило, несопоставимы на основе лучшего / более быстрого / надежного.

Только их реализации сопоставимы, и я уверен, что вы найдете хорошие реализации обеих спецификаций.

Возможно чтение и чтение .

...