Как бы вы настроили веб-сервер Python с несколькими vhosts? - PullRequest
1 голос
/ 11 февраля 2009

Мне сказали, что wsgi - это путь, а не mod_python. Но, в частности, как бы вы настроили серверную среду с несколькими веб-сайтами? Выбор веб-сервера и т. Д.

Ответы [ 3 ]

4 голосов
/ 11 февраля 2009

Apache + mod_wsgi - это обычный выбор.

Вот простой пример vhost, настроенный для сопоставления любых запросов на / wsgi / что-то с приложением (которое затем может посмотреть на PATH_INFO, чтобы выбрать действие, или как бы вы ни занимались диспетчеризацией). Корневой URL-адрес '/' также направляется в приложение WSGI.

LoadModule wsgi_module /usr/local/lib/mod_wsgi.so
...

<VirtualHost *:80>
    ServerName                  www.example.com
    DocumentRoot                /www/example/htdocs
    WSGIScriptAliasMatch ^/$    /www/example/application.py
    WSGIScriptAlias      /wsgi  /www/example/application.py
</VirtualHost>

Вы можете использовать директиву WSGIProcessGroup для разделения обработчиков для разных vhosts, если хотите. Если вам нужны скрипты vhosts для работы под разными пользователями, вам нужно использовать WSGIDaemonProcess вместо встроенного интерпретатора Python.

application.py при запуске оставит ваш WSGI вызываемым в глобальной переменной «application». Вы также можете добавить нижний колонтитул run-as-main для совместимости с CGI старой школы:

#!/usr/bin/env python
from mymodule import MyApplication

application= MyApplication()

if __name__=='main':
    import wsgiref.handlers
    wsgiref.handlers.CGIHandler().run(application)
1 голос
/ 11 февраля 2009

Я бы порекомендовал Nginx для веб-сервера. Быстро и легко настроить.

Возможно, вы захотите иметь одного пользователя Unix для каждого vhost - поэтому каждый домашний каталог содержит свое собственное приложение, среду Python и конфигурацию сервера. Это позволяет вам безопасно перезапустить определенное приложение, просто убивая рабочие процессы, которыми владеет ваш vhost.

Просто наконечник, надеюсь, что это помогает.

0 голосов
/ 11 февраля 2009

Вы можете использовать Apache и mod_wsgi . Таким образом, вы все равно можете использовать встроенную поддержку Apache для vhosts.

...