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` : {{{#!apache
ServerAdmin adel-du-webmestre@vn.auf.org
ServerName XXX.vn.auf.org
RedirectMatch . https://XXX.vn.auf.org/
}}}
* `/etc/apache2/sites-available/XXX.vn.auf.org-ssl` : {{{#!apache
ServerAdmin adel-du-webmestre@vn.auf.org
ServerName XXX.vn.auf.org
DocumentRoot /var/www/
ProxyRequests Off
Order deny,allow
Allow from all
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
}}}
. (!) 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`
. {i} le fichier `/etc/apache2/ssl-common.conf` contenant une configuration SSL standard, avec un certificat SSL/TLS générique `*.vn.auf.org`
. {i} 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` : {{{#!apache
# vim:syntax=apache
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
Options FollowSymLinks
AllowOverride None
# Deny access to /tmp:
deny from all
# Disable scripts in /IMG:
php_flag engine Off
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
}}}
. {i} 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
}}}
. (!) 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) : {{{#!php
if ($_SERVER['HTTP_HOST'] == "XXX.site") {
$_SERVER['HTTPS'] = "on";
$_SERVER['HTTP_HOST'] = "XXX.vn.auf.org";
$_SERVER['SERVER_NAME'] = "XXX.vn.auf.org";
}
}}}