Cette page présente la configuration spécifique d'un moteur SPIP multi-sites derrière un proxy frontal.
Les sites sont accessibles sur Internet via des URLs de la forme https://XXX.vn.auf.org/, les accès sans SSL/TLS étant automatiquement redirigés.
Configuration sur le proxy frontal
Ces URL arrivent sur un proxy frontal Apache avec des VirtualHost comme suit :
/etc/apache2/sites-available/XXX.vn.auf.org :
<VirtualHost *:80> ServerAdmin adel-du-webmestre@vn.auf.org ServerName XXX.vn.auf.org RedirectMatch . https://XXX.vn.auf.org/ </VirtualHost>
/etc/apache2/sites-available/XXX.vn.auf.org-ssl :
<IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin adel-du-webmestre@vn.auf.org ServerName XXX.vn.auf.org DocumentRoot /var/www/ ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://XXX.site/ ProxyPassReverse / http://XXX.site/ ErrorLog ${APACHE_LOG_DIR}/XXX.vn.auf.org-ssl_error.log CustomLog ${APACHE_LOG_DIR}/XXX.vn.auf.org-ssl_access.log combined Include ssl-common.conf </VirtualHost> </IfModule>
ne pas oublier d'activer le mode VirtualHost pour *:443 dans /etc/apache2/ports.conf
ne pas oublier d'activer les VirtualHost avec a2ensite XXX.vn.auf.org{,-ssl} && service apache2 reload
le fichier /etc/apache2/ssl-common.conf contenant une configuration SSL standard, avec un certificat SSL/TLS générique *.vn.auf.org
les XXX.site pointent tous sur le même serveur SPIP multi-sites
Configuration sur le serveur portant le moteur SPIP
Du côté du serveur SPIP réel (derrière le proxy frontal), il y a également un VirtualHost par site, comme suit :
/etc/apache2/sites-available/XXX.site :
# vim:syntax=apache <VirtualHost *:80> ServerAdmin adel-du-webmestre@vn.auf.org ServerName XXX.site DocumentRoot /var/lib/spip Alias /favicon.ico /var/www/favicon.ico Alias /IMG /var/lib/spip/sites/XXX/IMG Alias /local /var/lib/spip/sites/XXX/local <Directory /> Options FollowSymLinks AllowOverride None </Directory> # Deny access to /tmp: <Location /tmp/> deny from all </Location> # Disable scripts in /IMG: <Directory /var/lib/spip/sites/XXX/IMG> php_flag engine Off </Directory> ErrorLog ${APACHE_LOG_DIR}/XXX.site-error.log LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined_proxy SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded CustomLog ${APACHE_LOG_DIR}/XXX.site-access.log combined env=!forwarded CustomLog ${APACHE_LOG_DIR}/XXX.site-access.log combined_proxy env=forwarded </VirtualHost>
le site SPIP XXX.site aura été créé au préalable avec spip_add_site XXX et le fichier /etc/spip/sites/XXX.php modifié comme suit :
<?php $GLOBALS['spip_sites']['XXX'] = array('XXX.site', 'XXX.vn.auf.org'); ?>
ne pas oublier d'activer les VirtualHost avec a2ensite XXX.site && service apache2 reload
Avec SPIP il est aussi nécessaire de modifier le fichier /etc/spip/mes_options.php pour lui indiquer les informations de connexion d'origine (pour qu'il puisse construire ses URL correctement) :
if ($_SERVER['HTTP_HOST'] == "XXX.site") { $_SERVER['HTTPS'] = "on"; $_SERVER['HTTP_HOST'] = "XXX.vn.auf.org"; $_SERVER['SERVER_NAME'] = "XXX.vn.auf.org"; }