необходим apache, пока у нас есть встроенный в Python SimpleHttpServer - PullRequest
3 голосов
/ 23 февраля 2012

Я новичок в мире веб-разработчиков Python и немного растерялся из-за того, что нам нужна среда Apache, в то время как мы могли бы запустить веб-приложение Python с его встроенным http sever ?Кроме того, исходя из своего опыта, я мог запустить приложение django, не настраивая ничего другого.тогда зачем нам нужен apache + mod_wsgi?для производительности?

на самом деле, что меня действительно смущает ... как должна быть написана моя точка входа в код?Например, я слышал, что есть и другие продвинутые «веб-серверы», такие как cherrypy / Tornado, и для каждого из них потребуется свой код входа.так что мне интересно, если apache (+ mod_wsgi) не пересекается с другими веб-фреймворками (я назвал их веб-сервером выше)?(в большинстве случаев) мы должны использовать apache на производстве, но использовать другие как «аддон»?спасибо

Ответы [ 5 ]

8 голосов
/ 23 февраля 2012

Производительность, стабильность, масштабируемость, безопасность, ...

Встроенный HTTP-сервер полезен для простого тестирования или быстрого запуска веб-приложения на компьютере разработчика, но ни в коем случае не является настолько масштабируемым, как сервер Apache. Безопасность, скорее всего, будет менее надежной и встроенной.

Кроме того, Apache позволяет вам обрабатывать множество дополнительных вещей, таких как vhosts, различные типы серверных платформ (например, приложение Ruby on Rails и приложение Django на одном порту / IP), которые сложнее добиться со встроенным сервером.

2 голосов
/ 24 февраля 2012

В наши дни стандартной точкой входа является объект приложения WSGI.Довольно хорошо все это поддерживает.То, как каждый веб-фреймворк предоставляет один и как вы настраиваете каждый механизм хостинга WSGI, чтобы затем использовать его, отличается.По сути, фактический интерфейс между веб-сервером и приложением одинаков.

2 голосов
/ 23 февраля 2012

Apache намного лучше, чем Python SimpleHTTPServer.

С одной стороны, SimpleHttpServer является однопоточным, но apache может легко обрабатывать несколько потоков. Apache также может быть настроен многими способами, которые не может сделать SimpleHttpServer. Apache имеет простое в использовании ведение журнала запросов, что полезно для отладки и ведения журнала.

0 голосов
/ 23 февраля 2012

Да, в общем, они нужны для производительности.

Если вы хотите избежать сложности настройки Apache до тех пор, пока вам это не понадобится (что может быть разумно, если у вас мало времени и / или нет опыта), вам, вероятно, будет лучше использовать CherryPy для обслуживания Django. Он имеет полностью Python веб-сервер с гораздо лучшей производительностью, чем встроенный.

Вы можете найти инструкции для этого здесь .

0 голосов
/ 23 февраля 2012

Производительность и масштабируемость - вот причины, по которым Apache будет работать в производстве.SimpleHTTPServer подходит для тестирования и внутреннего использования.

...