Различия и использование между WSGI, CGI, FastCGI и mod_python по отношению к Python?
Мне просто интересно, каковы различия и преимущества для разных CGI там. Какой из них лучше всего подходит для сценариев Python, и как мне указать сценарию, что использовать?
4 ответа
Частичный ответ на ваш вопрос, в том числе scgi.
- В чем разница между scgi и wsgi?
- Есть ли разница в скорости между WSGI и FCGI?
- Как веб-фреймворки Python, WSGI и CGI сочетаются друг с другом
CGI против FCGI
Ленивый и не пишу это сам. Из википедии: http://en.wikipedia.org/wiki/FastCGI
Вместо того, чтобы создавать новый процесс для каждого запроса, FastCGI использует постоянные процессы для обработки таких запросов. Можно настроить несколько процессов, увеличивая стабильность и масштабируемость. Каждый отдельный процесс FastCGI может обрабатывать множество запросов в течение своего срока службы, что позволяет избежать накладных расходов на создание и завершение процесса для каждого запроса.
Есть также хороший читатель по фонам для CGI, WSGI и других опций, в виде официального HOWTO на python: http://docs.python.org/2/howto/webservers.html
В таком проекте, как Django, вы можете использовать сервер WSGI ( интерфейс шлюза веб-сервера) из модуля Flup.
Сервер WSGI оборачивает внутренний процесс, используя один или несколько протоколов:
- FastCGI (вызов серверного процесса)
- SCGI ( простой общий интерфейс шлюза - более простой FastCGI)
- AJP ( Apache JServ Protocol - Java FastCGI)
- mod_python (запускает предварительно загруженный код на запрос - использует много оперативной памяти)
- CGI ( Common Gateway Interface, запускает процесс по запросу - медленно)
- FastCGI - это своего рода CGI с длительным сроком службы, который всегда будет работать.
- С FastCGI это займет меньше времени.
- Из-за многопроцессорности FastCGI будет стоить больше памяти, чем CGI.