Фактически, размещение приложения Python на «реальном» веб-сервере существенно отличается от его запуска на вашем локальном компьютере: локально вы полагаетесь на небольшой веб-сервер, который часто встроен в фреймворк, однако веб-сервер часто имеет ограничения (например, он может выполнять запросы только в одном потоке). В некоторых фреймворках (Django) явно указано, что их встроенный сервер должен использоваться только для разработки.
В производственной среде приложение Python обычно обслуживается веб-сервером «промышленного класса», таким как Apache или Nginx, который заботится о таких проблемах, как привязка к низким портам, отказ от привилегий, создание множества «рабочих» процессов , работа с виртуальными хостами, дезинформирование искаженных запросов и т. д. Приложение Python затем запускается на веб-сервере, используя что-то вроде mod_wsgi
или fcgi
для Apache или uwsgi
для Nginx. Кроме того, ваше приложение запускается как отдельный процесс, прослушивающий 127.0.0.1:6543 (так же, как вы делаете его локально), а «передний» веб-сервер проксирует все запросы к вашему приложению и обратно.
Дело: Это может быть сложно/невозможно разместить приложение Python на общего назначения общего хостинга, если ваш провайдер не имеет явной поддержки хостинга WSGI приложений (попросите инструкции)
Еще один момент: за $ 5/mo в эти дни вы можете получить красивую выделенную виртуальную машину, где вы можете установить все, что хотите, и не делиться ею с кем-либо. Хостинг веб-сайта Python намного проще, чем при работе с общим хостингом.
Ааа, и ответить на вопрос: в реальном приложении производства последние 2 строки, например:
server = make_server('0.0.0.0', 8080, app)
server.serve_forever()
не будет использоваться - вместо того, чтобы настроить веб-сервер, чтобы он знал, что переменная app
содержит ваше приложение wsgi. Обратитесь к next chapter в документах для более реалистичного примера.
Вы не должны спрашивать это на поддержку форум тех, кто поставляет хостинг? Если это VPS, то это одно, если это общий хостинг, тогда обычно это какая-то панель управления ... и т. Д. И т. Д. ... –
@JonClements no Я пытаюсь задать вопрос о программировании в пирамиде, я не удивлюсь, если мой хостинг никогда не слышал о пирамиде – Stephan
И ответ: вы предоставляете «хост» и «порт», что система, в которой вы работаете, доступна/открыта для вас. Так что это не вопрос программирования ... Вероятно, они разрешили порт, который знает, как добраться до вашего приложения из своего интерфейса/независимо ... Итак, вам нужно найти то, что есть, а затем привязать к этому порту. .. –