2009-02-11 6 views

Répondre

4

Apache + mod_wsgi est un choix commun. Voici un exemple simple de vhost, configuration pour mapper toutes les demandes de/wsgi/quelque chose à l'application (qui peut alors regarder PATH_INFO pour choisir une action, ou bien vous faites votre répartition). L'URL racine '/' est également acheminée vers l'application 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> 

Vous pouvez utiliser la directive WSGIProcessGroup pour séparer des gestionnaires pour différents vhosts si vous le souhaitez. Si vous avez besoin que les scripts de vhosts soient exécutés sous différents utilisateurs, vous devrez utiliser WSGIDaemonProcess à la place de l'interpréteur Python intégré. Lors de l'exécution, application.py laisserait votre appel WSGI dans la variable globale 'application'. Vous pouvez également ajouter un pied de page de run-as-principale pour la compatibilité avec l'ancienne école CGI:

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

application= MyApplication() 

if __name__=='main': 
    import wsgiref.handlers 
    wsgiref.handlers.CGIHandler().run(application) 
+0

Vous n'avez pas besoin d'utiliser WSGIScriptAliasMatch comme indiqué pour le montage à la racine du site Web. Vous pouvez toujours utiliser WSGIScriptAlias, il suffit d'avoir le premier argument '/'. WSGIScriptAliasMatch serait effectivement utilisé assez rarement. –

1

Je recommanderais Nginx pour le serveur Web. Rapide et facile à mettre en place.

Vous voudriez probablement avoir un utilisateur Unix par vhost - donc chaque répertoire personnel contient sa propre application, son environnement python et sa configuration de serveur. Cela vous permet de redémarrer une application particulière en toute sécurité, simplement en supprimant les processus de travail que votre vhost possède.

Juste un conseil, j'espère que ça aide.

+0

J'ai cherché une raison d'essayer nginx, donc je vais frapper ce sur ma machine locale. Merci! – schmilblick

+0

Le mode démon de mod_wsgi vous permet de déléguer des applications WSGI à des processus distincts pour chaque hôte virtuel, ou même au sein du même hôte virtuel. Vous pouvez ensuite forcer le redémarrage d'une application WSGI de différentes manières sans avoir à redémarrer l'ensemble d'Apache. –

0

Vous pouvez utiliser Apache et mod_wsgi. De cette façon, vous pouvez toujours utiliser le support intégré d'Apache pour les vhosts.

Questions connexes