Configuration d'Apache comme serveur frontal

L'installation d'Apache en frontal de ZOPE a plusieurs avantages :

Dans la suite de cette section nous allons présenter rapidement la mise en place d'un virtualhost. De nombreux documents sont disponibles sur zope.org ou plone.org pour aller plus loin (notamment sur l'utilisation d'Apache comme proxy).

Mise en place d'un virtualhost

Cette opération se déroule en deux temps, d'un côté la configuration d'Apache pour l'activation effective du virtualhost, de l'autre la configuration de ZOPE pour prendre en compte le changement d'URL dans les fonctions qui renvoient ce genre d'information (absolute_url par exemple).

Pour ZOPE, l'opération consiste simplement à ajouter à la racine du serveur un objet de type VirtualHostMonster. Celui-ci modifie le comportement des fonctions qui renvoient une URL (telle que absolute_url) afin qu'elles prennent en compte le virtualhost.

Note

Une fois que le VirtualHostMonster est créé, cliquer dessus pour avoir plus d'information sur son fonctionnement.

Pour Apache, il faut ajouter une section similaire à la suivante dans le httpd.conf.


<VirtualHost ip:port>
    Servername nom_virualhost
    RewriteEngine On
    RewriteRule ^/(.*) http://serveur_zope:port_zope/VirtualHostBase/http/nom_virtualhost/VirtualHostRoot/$1 [P]
</VirtualHost>

                

Explications

RewriteEngine On

Cette directive active le processus de réécriture des URLs pour ce virtualhost.

RewriteRule ^/(.*)

Cette règle est vérifiée pour toutes les URLs du site, la page demandée (avec son chemon complet) est stockée dans la variable $1.

http://serveur_zope:port_zope

Serveur sur lequel apache va récupérer la page demandée (voir [P]).

VirtualHostBase...VirtualHostRoot

Le VirtualHostMonster mis en place sur le serveur ZOPE va réagir à la présence de ces élément dans l'URL. Il va remplacer l'adresse réelle du serveur ZOPE par celle qui est contenu entre ces deux éléments.

http/nom_virtualhost

L'adresse par laquelle il faut remplacer l'adresse réelle du serveur ZOPE.

$1

La page initialement demandée est ajoutée au bout de la requête. Lorsque le serveur ZOPE va recevoir la requête en entier (http:///serveur_zope:port_zope/VirtualHostBase/http/nom_virtualhost/VirtualHostRoot/unChemin/unePage), le VirtualHostMonster va retirer tout ce qui le concerne et ZOPE va procéder à la recherche de la page demandée (http://serveur_zope:port_zope/unChemin/unePage).

[P]

Ce paramètre indique à Apache de se comporter comme un proxy, c'est à dire que c'est lui qui va interroger le serveur ZOPE, récupérer la page puis l'envoyer au client. Sans la présence du [P], Apache se contente de rediriger le client web vers la cible de la rewriterule (le client verra donc apparaître l'adresse réelle du serveur ZOPE, ce que l'on cherche à éviter).