Подтвердить что ты не робот

Mod_cgi, mod_fastcgi, mod_scgi, mod_wsgi, mod_python, FLUP. Я не знаю, сколько еще. что такое mod_php эквивалент?

Недавно я изучил Python. Мне нравится. Я просто хотел использовать его для веб-разработки. Эта мысль вызвала все проблемы. Но мне нравятся эти проблемы:)

Из мира PHP, где существует только один способ стандартизации. Я ожидал того же и искал python и apache.

Настройка Python на Windows/Apache говорит

Держитесь подальше от mod_python. Один общий вводящей в заблуждение идеей является то, что mod_python как mod_php, но для python. То есть не верно.

Итак, что эквивалентно mod_php в python?

Мне нужно немного пояснить этот Как веб-фреймворки Python, WSGI и CGI подходят друг к другу

CGI, FastCGI и SCGI являются агностиками языка. Вы можете писать сценарии CGI в Perl, Python, C, bash или даже Assembly:). Итак, я думаю, mod_cgi, mod_fastcgi, mod_scgi - их соответствующие модули apache. Правильно?

WSGI - это своего рода оптимизированная/улучшенная версия, эффективная версия, специально разработанная для языка python. Для использования этого mod_wsgi - это путь. правильно?

Это не соответствует mod_python. Что это значит?

Apache → mod_fastcgi → FLUP (через протокол CGI) → Django (через протокол WSGI) Flup - это еще один способ запускать wsgi для любого веб-сервера, который может говорить FCGI, SCGI или AJP

Что такое FLUP? Что такое AJP? Как появился Django?

Эти вопросы поднимают вопросы о PHP. Как это работает? Какую технологию он использует? mod_php и mod_python, в чем отличия?

В будущем, если я хочу использовать Perl или Java, мне снова придется запутаться? Не стесняйтесь, кто-нибудь может ясно объяснить ситуацию и дать Заключительное изображение.

4b9b3361

Ответ 1

mod_python больше всего похож на mod_php на то, что он делает (т.е. пытается все сделать). Это не обязательно хорошая вещь, и я бы не рекомендовал писать приложения на родные интерфейсы mod_python сегодня.

WSGI - это своего рода оптимизированная/улучшенная версия, эффективная версия, специально разработанная для python

Разница заключается в том, что WSGI определен в самом языке Python: он указывает, какие объекты и значения получит ваш код. [S | Fast] CGI больше связаны с байтами на проводе.

Записывая приложение в стандарт WSGI (либо напрямую, либо используя фреймворк, который его поддерживает), вы расцепляете проблемы написания и развертывания приложений.

Чтобы использовать этот mod_wsgi - это способ пойти. правильно?

Это способ пойти, и определенно хороший выбор для пользователей Apache, но далеко не единственный. Напишите в WSGI, и вы можете развертывать его в широком диапазоне сред, включая [S | Fast] CGI и mod_python.

Ответ 2

Стандартный способ развертывания приложения Python в Интернете - через WSGI. В эти дни нет причин использовать что-либо еще.

mod_wsgi - это модуль Apache, который поддерживает WSGI. Другие веб-серверы будут иметь разные имена для своих модулей WSGI.

Ответ 3

Точного эквивалента mod_php в мире Python нет.

  • FastCGI, SCGI и AJP запускают веб-приложение как отдельный процесс (демон) и передают сообщения между веб-сервером и им.
  • mod_python используется для встраивания кода Python в процесс httpd во время любой фазы запроса.
  • mod_wsgi может запускать код Python в любом демоне или вложенном режиме.
  • CGI - это протокол, который запускает программу script/каждый раз, когда выполняется запрос.
  • FLUP - это набор адаптеров, которые могут быть использованы для преобразования одного из этих интерфейсов в другой.

Ответ 4

mod_python является самым близким эквивалентом mod_php, но это не означает, что mod_python будет соответствовать вашим потребностям. Для каждого языка программирования вы должны перечислить все возможные варианты и выбрать тот, который вам понадобится.

Для PHP у вас есть mod_php и mod_cgi, но из этих двух mod_cgi уступает почти всем способам mod_php, поэтому люди обычно выбирают последнее. (Есть несколько альтернатив, например suphp, если вам нужна дополнительная безопасность и т.д.)

Для Python у вас есть mod_cgi, который будет запускать интерпретатор python каждый раз, когда вы делаете запрос. Mod_python вместо этого имеет встроенный python, поэтому он обычно выполняется быстрее и проще, но для больших проектов или проектов, использующих фреймворк (например, DJango), вы, вероятно, захотите использовать mod_wsgi, потому что он наиболее удобен для ресурсов.

Для ruby ​​у вас также есть возможность использовать mod_cgi, но это будет слишком медленным. mod_ruby также является вариантом, но только для небольших программ. mod_fastcgi обычно был вариантом для rails/merb и других рубиновых веб-фреймворков, но они дополняются mod_rails и mod_rack, которые являются дружественными к источникам. Но для простых скриптов последние немного тяжелее.

Для mono (asp.net) у вас есть mod_mono, который обычно является единственным вариантом.

Для java вы обычно запускаете отдельный веб-сервер Tomcat/Jetty и используете mod_proxy.

Конечно, запуск отдельного веб-сервера и использование mod_proxy обычно является вариантом для всех веб-фреймворков, хотя он в основном подходит только для процесса разработки. В производственных средах вам нужно тщательно выбирать лучший вариант (тот, который в основном удобен для ресурсов) для вашей инфраструктуры (django, rails, asp.net и т.д.) Требуется