Apache

Compression GZIP

Posted in Apache on décembre 12th, 2009 by Stéphane – 3 Comments
AddOutputFilterByType DEFLATE text/plain text/css application/x-javascript text/javascript text/xml text/html

Si vous utilisez GWT (Google Webmaster Tools), vous avez pu constater qu’il donne des pistes d’amélioration pour la performance des sites internet, j’ai constaté pour un site un peu lent que GWT suggérait :

Autoriser la compression à l’aide de gzip

Pour faire cela, il va falloir modifier les paramètres d’Apache. Il faut tout d’abord charger les modules deflate et headers, sur une configuration debian classique cela donne dans le fichier de configuration d’Apache  :

LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so

La configuration de deflate est gérée dans le fichier deflate.conf du répertoire mods-available, il faut y ajouter :

AddOutputFilterByType DEFLATE text/plain text/css application/x-javascript text/xml text/html

Puis redémarrer Apache :

/etc/init.d/apache2 restart

Feedburner RSS htaccess

Posted in Apache on novembre 26th, 2009 by Stéphane – Be the first to comment

Si vous avez en place un flux rss depuis un moment et que vous souhaitez obtenir des statistiques sur celui-ci, vous pouvez utiliser feedburner qui est fait pour ça. Un problème va cependant se poser, les utilisateurs qui auront déjà souscrit à votre flux ne seront pas comptabilisés dans ces statistiques.

Vous pouvez alors effectuer une redirection htaccess (ou directement dans vos paramètres apache) de votre flux initial (disons http://www.monsite.com/rss.xml vers http://feeds.feedburner.com/monsite). Cependant attention aux règles que vous placez dans votre htaccess, car il faut que votre flux reste accessible au robot de feedburner, sinon, il ne pourra plus s’afficher, vous pouvez faire ainsi :

RewriteCond %{HTTP_USER_AGENT} !FeedBurner
 RewriteRule ^/rss\.xml$ http://feeds.feedburner.com/monsite [L,R=302]

Ainsi, le robot lira de manière normale votre flux et les utilisateurs de votre flux habituel seront redirigés vers sa réplique FeedBurner, ce qui permettra d’intégrer les utilisateurs déjà inscrits à vos statistiques RSS.

Forcer le téléchargement d’un type de fichier sur Apache

Posted in Apache on novembre 26th, 2009 by Stéphane – 5 Comments

Pour forcer le téléchargement d’un type de fichier, on peut utiliser plusieurs méthodes. Ca peut être utile si par exemple vous souhaitez que les fichiers PDF soient téléchargés et pas simplement affichés dans le navigateur.

Nous utiliserons le fichier de configuration d’apache :

AddType application/octet-stream .pdf .zip .rar

Ainsi, les fichiers PDF ZIP et RAR seront téléchargés.

Autre méthode :

<FilesMatch "\.(pdf|zip|rar)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>

Créer un fichier htpasswd

Posted in Apache on octobre 20th, 2009 by Stéphane – Be the first to comment

Rien de plus simple avec la commande htpasswd de Linux.

Utilisation :

htpasswd -c .htpasswd demo

L’option -c sert à créer un nouveau fichier si besoin, demo correspond à l’identifiant que l’on souhaite, l’invite de commande demandera ensuite un mot de passe et une confirmation de celui-ci. Voici un inventaire des options possibles :

 -c  Créer un nouveau fichier
 -n  Ne pas ajouter l'entrée, juste montrer le résultat dans la console
 -m  Force l'encryptage md5 du mot de passe.
 -d  Force encryptage du mot de passe.
 -p  n'encrypte pas le mot de passe.
 -s  Force l'encryptage SHA du mot de passe.
 -D  Supprime l'utilisateur du fichier.

Voilà, bonne utilisation.

Domaine avec et sans www

Posted in Apache on octobre 9th, 2009 by Stéphane – Be the first to comment

Cet article est classé dans la catégorie apache, mais relève plus de la gestion des DNS et des serveur de noms de domaine tel que Bind. Souvent, certains sites ne sont disponibles qu’en tapant “http://www.ligams.net” ou “http://ligams.net”; La bonne pratique voudrait que celui-ci soit disponible via les 2 URLs.

Pour parvenir à cette fin, encore faut-il que Bind et apache soient bien paramétrés.

Configuration  de Bind :

Le fichier d’enregistrement devrait ressembler à peu près à ceci (pour moi qui suis hébergé par OVH) :

$ttl 38400
ligams.net.    IN    SOA    xxxx.ovh.com. slemerre.ligams.com. (
1255006489
10800
3600
604800
38400 )
@            IN    NS    xxxx.ovh.com. # DNS primaire
@            IN    NS    ns.ovh.com.   #DNS secondaire
www.ligams.net.    IN    CNAME    www.ovh.com.  #Alias
@    IN    A    xxx.xxx.xxx.xxx  #remplacer par votre IP

Le “@” (arobase) est un alias pour ligams.net, tout simplement. N’oubliez pas d’enregistrer un DNS secondaire, même pour les domaines en .com .net et consort, c’est largement préférable.

Ainsi, www.ligams.net et ligams.net pointeront vers ma machine, merveilleusement illustrée par xxxx.ovh.com.

Il reste maintenant à configurer le serveur Web

Configuration de Apache

Configuration du domaine dans le fichier de configuration de celui-ci :
DocumentRoot /var/www/xxx
ServerName ligams.net
ServerAlias www.ligams.net

Je considère ainsi que le domaine principal est ligams.net et que www.ligams.net est un alias de ce domaine.

Rediriger le domaine avec www vers le domaine sans

Les référenceurs sont très attachés à éviter au maximum ce qui s’appelle duplicate content (page accessible à partir de plusieurs URLs, ie http://ligams.net/page.html et http://www.ligams.net/page.html); cet état de fait n’est donc pas satisfaisant sur certains cahiers des charges. Nous pouvons résoudre ce problème grâce au mod_rewrite d’apache en éditant le fichier .htaccess ou celui de configuration du site :

RewriteEngine On
RewriteCond %{HTTP_HOST} !^ligams\.net [NC]
RewriteRule (.*) http://ligams.net/$1 [QSA,R=301,L]

Tous les sous domaines seront donc redirigés vers le domaine ligams.net. Notez la présence des flags en bout de ligne, pour en savoir plus là dessus vous pouvez consulter la documentation officielle des flags du module rewrite. Vite fait pour les flags utilisés ici :

[L] : si la règle match, le serveur n’ira pas plus loin
[R=301] : effectue une redirection permanente
[QSA] : Par défaut, RewriteRule supprime les variables GET, le flag QSA permet de les conserver.
[NC] : nocase => la règle sera insensible à la casse

Vous disposez donc de tous les outils pour mettre en place votre site internet et son domaine (n’oubliez pas de redémarrer les services apache et bind :) ).