|
|||||||
1. Introduction
2. Installation 3. Le serveur Web 4. Options de configuration 5. Travailler avec Apache, LightTPD ou Xitami 5.1 Apache 5.2 lighttpd 5.3 Xitami 6. Programmation 7. Debogage 8. Scripts Python 9. Services Karrigell 10. Python Inside HTML 11. HTML Inside Python 12. HTMLTags - génère du HTML en Python 13. Inclure des documents 14. Sessions 15. Authentification 16. Traduction et Unicode |
5. Karrigell avec Apache, lighttpd ou XitamiBien que Karrigell puisse fonctionner de façon autonome avec le serveur Web intégré, il peut être intéressant de le faire fonctionner avec un serveur Web externe. Apache est le serveur le plus répandu dans le monde, il est performant, stable, il permet de travailler en mode sécurisé (SSL), il offre des services de log, etc5.1 Apache5.1.1 IntroductionPour utiliser Karrigell dans Apache vous devrez télécharger et installer les élements suivants : Je préconise que vous utilisiez la dernière version stable de chacun des éléments ci-dessus Je recopie l'essentiel de cette section à partir de la documentation de CherryPy, par Rémi Delon : http://www.cherrypy.org/wiki/BehindApache Une fois que tout ce qui précède est installé (et fonctionne!) tout ce qu'il vous reste à faire est d'ajouter quelques lignes au fichier de configuration Apache Dans la section LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule rewrite_module modules/mod_rewrite.soAilleurs dans la section Main server configuration , ajoutez les lignes suivantes pour mettre en oeuvre la fonction proxy :
ProxyRequests On <Proxy *> Order allow,deny Deny from none Allow from all </Proxy> Pour demander à Apache d'envoyer les requêtes vers le serveur intégré, mod_rewrite est utilisé. Ce module analyse l'url d'origine et la modifie selon des règles écrites sous forme d'expressions régulières. Ici les lignes à écrire sont : RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !autostart\.cgi$ RewriteRule ^(.*) http://localhost:8081$1 [P] ErrorDocument 502 /cgi-bin/autostart.cgiLa fonctionnalité essentielle est décrite dans la RewriteRule : elle indique à Apache de réécrire toutes les urls en une url absolue correspondant au serveur intégré qui tourne sur le port 8081, et d'utiliser le mode proxy pour lui passer la requête Si le serveur intégré ne tourne pas, une erreur 502 est renvoyée ; la dernière ligne indique à Apache d'appeler le script autoscript.cgi est un petit script, qui ressemble à ceci sous Linux/Unix :
La seule chose à adapter est l'emplacement de python sur la première ligne, et le chemin vers Ensuite lancez le serveur intégré sur le port 8081 et démarrez Apache. Ceci devrait suffire pour faire fonctionner l'ensemble. Démarrez (ou redémarrez) Apache pour lui faire lire la nouvelle configuration et commencez à vous en servir.
En fonction de la valeur prise par Pour des raisons de sécurité, sur Linux il vaut mieux démarrer Karrigell sur un port supérieur à 1024 et pas comme root 5.1.2 Hôtes virtuelsLes hôtes virtuels peuvent être utilisés avec Apache pour servir des hôtes différents sur la même machine avec le même serveur. Depuis la version 2.2, Karrigell prend en charge cette notion d'hôte virtuel, ainsi vous pouvez servir tous les hôtes virtuels avec la même instance du serveur intégréSi vous avez configuré
NameVirtualHost 127.0.0.1:80 <VirtualHost 127.0.0.1:80> ServerName karrigell # for use with Karrigell RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !autostart\.cgi$ RewriteRule ^(.*) http://karrigell:8081$1 [P] ErrorDocument 502 /cgi-bin/autostart.cgi </VirtualHost> Bien entendu vous changerez l'adresse et le port dans <Virtual Host> aux valeurs appropriées 5.2 lighttpdD'après le site de lighttpd :Sécurité, vitesse, conformité et flexibilité - tout ceci décrit LightTPD qui est en train de redéfinir les critères d'efficacité d'un serveur web, qui est conçu et optimisé pour des environnements de haute performance. D'encombrement mémoire réduit par rapport à d'autres serveurs web, une gestion efficace de la charge CPU et un ensemble complet de fonctionnalités (FastCGI, CGI, Auth, compression, réécriture d'URL et bien d'autres) LightTPD est la solution idéale pour les serveurs qui connaissent des problèmes de charge. Et, cerise sur le gâteau, c'est un logiciel libre publié sous la licence BSD Configuration pour Karrigell par Laurent Pointal
|