Archives par mot-clé : sysadmin

gérer des sous-domaines à la volés via de l’url rewriting

Bijour à tous …

Ce soir … une astuce des plus inutile (et oui … je commence à les aligner).

J’explique quand même un peu l’idée :

Je travail sur un projet de site web un peu spécial (encore à l’état de concept pour le moment). Et l’idée du site était de fournir une url assez simple pour chaque membre du site (dans le genre www.site.fr/pseudo), pour afficher des informations sur le membre …

Voulant pousser l’application un peu plus loin, je me suis dit que transformer ce www.site.fr/pseudo en pseudo.site.fr ça ferait un peu mieux.

Voici donc l’astuce utilisée :

Tout d’abord, la page du membre ce récupère ainsi : www.site.fr/?i=membre&n=pseudo

Donc en Rewrite Url ça nous donne un truc dans ce genre pour avoir l’url en www.site.fr/pseudo

RewriteRule ^([A-Za-z_/0-9]+)$ ?i=membre&n=$1 [L]

Pour avoir une url en pseudo.site.fr, il faut recourir à cette astuce

RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9-_]+)\.site.fr
#on interdit l’utilisation de cette technique pour le www
RewriteCond %{HTTP_HOST} !^www\.site.fr
RewriteRule (.*) /var/www/index.php?i=membre&n=%1 [L]

Donc voilà … si vous vous demandiez comment les gars qui ont fait le site labrute.fr pouvait avoir un sous-domaine par joueur … vous avez la réponse 😉

Bon sinon, avouez que c’est vraiment pas très utile …

Sinon, on pourrait très bien imaginer un système qui pourrait remplacer le mod_vhost_alias en faisant un truc du genre :

RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9-_]+)\.site.fr [NC]
RewriteRule (.*) /var/www/%1/$1 [L]

Ce qui aurait pour effet de chercher les fichiers dans le dossier du sous domaine,(si on accède a moi.site.fr, le serveur chercherait les fichier situé dans /var/www/moi/…).

Bon j’arrête là …

Réduire la consommation de bande passante (Apache mod_deflate)

Rapide mémo sur la configuration du mod_deflate de apache qui permet de réduite pas mal la consommation de bande passante en compressant les données à la volée avec gzip avant de l’envoyer au client :

Tous d’abord, on charge le module dans la config :

Debian : a2enmod deflate

Ubuntu : sudo a2enmod deflate

Ensuite :

on ouvre le fichier apache2.conf ou httpd.conf, et l’on met l’une de ces lignes :

Si l’on veut seulement compresser les fichiers html, xml, et texte plein …

AddOutputFilterByType DEFLATE text/html text/plain text/xml

ou si l’on veut tous compresser par défaut

SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ \
no-gzip dont-vary
SetEnvIfNoCase Request_URI \
\.(?:exe|t?gz|zip|bz2|sit|rar)$ \
no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary

ou pour compresser suivant le navigateur :

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

Pour avoir des logs :

DeflateFilterNote Input input_info
DeflateFilterNote Output output_info
DeflateFilterNote Ratio ratio_info
LogFormat ‘ »%r » %{output_info}n/%{input_info}n (%{ratio_info}n%%)’ deflate
CustomLog /var/log/apache2/deflate_log deflate