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)