blog
Comment bien optimiser son Apache ?

Comment bien optimiser son Apache ?

Apache2 est souvent considéré comme un dinosaure du web. Quoi qu’on en dise, il reste incontournable et répond à la plupart des besoins : moderne, hyper configurable, puissant, le serveur de la fondation du même nom n’a plus à être présenté. 

On a l’habitude d’installer Apache avec un simple apt-get. Or s’il est vrai que la configuration par défaut suffit à bien des usages, il ne fait aucun mystère qu’une configuration plus fine apportera sécurité, rapidité et scalabilité.

L’équipe support de Nexylan vous récapitule les principales fonctionnalités à ajouter dans votre fichier .htaccess pour bénéficier une configuration optimisée.

Au programme :

  •   1. Redirection HTTPS
  •   2.  Compression Gzip
  •   3. Keep-alive
  •   4. User.ini

1- Redirection HTTPS

Vous souhaitez une redirection simple, sans risque de boucle de redirection ?

Alors les lignes suivantes sont faites pour vous !

Pour une redirection vers HTTPS vous pouvez ajouter ceci en haut de votre fichier .htaccess :

RewriteEngine on
RewriteCond %{HTTPS!=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 

Pour une redirection plus formelle vers HTTPS et les WWW, ajoutez ceci à votre fichier :

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST!^www\\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\\.)?(.+)$ [NC]
RewriteRule ^.*$ <https://www>.%1%{REQUEST_URI} [L,NE,R=301]

Attention, si toutefois, vous avez des soucis de boucle de redirection, pensez à vérifier si vous n’avez pas de plugin en place effectuant déjà ce genre de redirection, ou si vous ne possédez pas d’autre ligne en RewriteRule.

Hors amélioration d’Apache, veillez également à ce que votre nom de domaine affiche la même adresse IP, avec et sans les www. Vous pouvez vérifier simplement depuis dnschecker.org.

Si ce n’est pas le cas, vous devez changer votre champ dans votre zone DNS.

2- Compression Gzip

Lorsque l’on parle d’optimisation, il faut également penser à activer la compression Gzip.

Par défaut, Apache compresse certains types de fichiers avant de les envoyer. Les fichiers sont ainsi plus légers et le temps de transfert est réduit. Le navigateur les décompresse à la volée et voilà.

Ceci est géré par le module deflate qui compresse le tout en gzip (ou deflate selon la demande du navigateur). Dans 99% du temps vous n’avez rien à faire. Cependant, il y a un type de media non compressé par défaut et dont on peut pourtant avantageusement tirer profit : il s’agit des images svg.

Alors, comment fait-on cela ? Rien de plus simple, ajouter les quelques lignes ci-dessous dans votre fichier .htaccess pour compresser les svg  :

<IfModule mod_deflate.c>
    <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
        AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
        AddOutputFilterByType DEFLATE application/rss+xml
        AddOutputFilterByType DEFLATE application/xml
        AddOutputFilterByType DEFLATE image/svg+xml
        AddOutputFilterByType DEFLATE application/json
    </IfModule>
</IfModule>

3- Keep-alive

Pour faire simple, Keep-alive permet aux clients et aux serveurs de communiquer plus efficacement et d’utiliser moins de ressources.

Si les connexions keep-alive sont désactivées pour votre site, vous pouvez facilement les activer. Pour le faire, suivez ces étapes :

1. Copiez les lignes suivantes et collez-les dans le fichier .htaccess

<IfModule mod_headers.c>
    Header set Connection keep-alive
</IfModule>

4- User.ini

On ne peut parler d’Apache sans PHP, mais vous ne souhaitez pas y toucher ?

L’utilisation d’un fichier .user.ini donne la possibilité de personnaliser certains paramètres de l’environnement d’exécution du langage PHP sur l’espace d’hébergement. (memory_limit, upload_max_filesize, etc.). Il suffit de créer ce fichier à la racine de votre hébergement pour que ces paramètres personnalisés soient pris en compte par php.

Chaque exécution d’un script PHP vérifie la présence d’un fichier .user.ini à la racine de l’hébergement (/htdocs en général). On peut donc utiliser ce fichier pour personnaliser la configuration PHP en fonction du besoin de l’application.

Les directives PHP du fichier .user.ini sont effectives dans les dossier et sous-dossiers de l’emplacement du fichier .user.ini

Exemple de .user.ini :

max_input_vars = 1000

upload_max_size = 500M

Attention, toutes les variables ne sont pas configurables par cette méthode.

Vérification

Il est possible de vérifier la configuration « locale » du PHP via un fichier phpinfo (exemple : phpinfo.php) contenant le code suivant :

<?php
phpinfo();
?>

Pour afficher votre page : http://nomdedomaine.tld/phpinfo.php

En résumé

Pour des optimisations basiques, le fichier .htaccess reste la meilleure solution.

N’hésitez surtout pas à utiliser N-Admin pour vérifier vos performances des sites tels que GTmetrix, qui vous indiqueront les points à améliorer.

Pour toutes questions, n’hésitez pas à contacter nos équipes.