Archive for category Serveurs

Optimiser la bande passante (Apache mod Deflate)


Le module Deflate de Apache vous permet de compresser vos pages depuis le serveur avant de les envoyer au client.

Le plus : Economie de bande passante de 40 à 80%

Le moins : Montée en charge du processeur (dù à la compression)

Activation du module

a2enmod deflate ; a2enmod headers 

Ajout de la configuration

Ajouter à la fin de votre /etc/apache2/apache2.conf

<IfModule mod_deflate.c>
    DeflateCompressionLevel 3
</IfModule>
 
<Location />
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE image/svg+xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/atom_xml
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/x-httpd-php
    AddOutputFilterByType DEFLATE application/x-httpd-fastphp
    AddOutputFilterByType DEFLATE application/x-httpd-eruby
 
    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
    SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary
 
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
 
    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary
</Location>

Puis relancer apache

/etc/init.d/apache2 restart

Tester votre compression via : http://www.whatsmyip.org/mod_gzip_test/

Source : goldzoneweb

Tags: ,

Mysql dump

Petit script de DUMP des bases mysql pour les restaurer jusqu’à 30 jours

Préparation

Création d’un utilisateur mysql n’ayant que le droit de faire des dump

CREATE USER 'dump'@'localhost' IDENTIFIED BY 'MotDePAssEBetonEtLonG';
GRANT SELECT , SHOW DATABASES , LOCK TABLES , SHOW VIEW ON * . * TO 'dump'@'localhost' IDENTIFIED BY 'MotDePAssEBetonEtLonG' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Création du répertoire d’accueil des dumps

# mkdir /var/backups/mysql

Source du script mysql_dump.sh

#!/bin/bash

# Impiré d'un script trouvé sur phpnews.fr
 # Repris par David Mercereau david [point] mercereau [at] gmail [point] com
 # Déclaration de l'utilisateur MySQL aux droits suffisants pour parcourir vos bases de données
 my_utilisateur='dump'
 my_motdepasse='MotDePassEBetonEtLonG'

# Répertoire de stockage des dump
 rep="/var/backups/mysql/"
 # On définit le nom du dump (ici la date jusqu'à  la minute)
 dossier="dump_`date +%d`.`date +%m`.`date +%y`@`date +%H`h`date +%M`"

# On crée sur le disque un répertoire temporaire
 mkdir "$rep/$dossier"

# On place dans un tableau le nom de toutes les bases de données du serveur
 # On peut choisir ici d'exclure certaines bases de données de la sauvegarde grâce à  la clause LIKE
 # Ex : -e "show databases LIKE 'blog_%'"
 databases=( $(mysql -u $my_utilisateur -p"$my_motdepasse" -e "show databases" | grep -v Database) )

# On dump base par base
 for database in ${databases[@]}
 do
 $(mysqldump -u $my_utilisateur -p$my_motdepasse --quick --add-locks --lock-tables --extended-insert $database  > ${rep}${dossier}/${database}.sql)
 done

# Compression
 cd $rep
 tar -cvzf ${dossier}.tar.gz $dossier/
 chmod 600 ${dossier}.tar.gz

# Suppression repertoire temporaire
 rm -rf $dossier/

# Ménage dans les vieux dump
 echo "Suppression des vieux dump"
 find $rep -mtime +30 -print -exec rm {} \;

Ajouter en tâche cron

De cette manière nous allons lancer ce script tous les jours à 4 heures du matin

$ crontab -e

Ajouter ceci

0 4 * * * nice -n 19 /chemin/du/script/mysql_dump.sh

Tags: , ,