Installer Varnish depuis les sources sur Fedora 11

Le post du jour va traiter de l’installation de varnish depuis les sources sur Fedora 11 de manière manuelle.

Varnish-cache est un serveur proxy qui va mettre en cache les pages demandées afin d’éviter au « moteur » de les recalculer systématiquement. Varnish-cache est un outil simple et puissant permettant un usage multiple, de la simple mise en cache à la répartition de charge comme on peut le lire ici : http://www.varnish-cache.org/docs/2.1/tutorial/advanced_backend_servers.html

Pour faire simple, vanish-cache reçoit les requêtes http sur un port que l’on défini dans son fichier de configuration, et rediriger la requête sur le (ou les) « backend » défini. On entend par « backend », le serveur qui fournit le contenu, typiquement apache, sur la même machine physique, ou encore sur un (ou plusieurs) autre(s) serveur(s).

Ce mode d’installation diffère légèrement de l’installation par paquets dans la mesure ou les fichiers de configuration ne sont pas positionnés au même endroit. (Généralement dans /usr/local/etc au lieu de /etc pour la config, et /usr/local/(bin|sbin) au lieu de /bin|/sbin).

On va donc dans notre dossier préféré pour compiler les programmes depuis la source, et on télécharge le programme en dernière version (2.1.5) au moment de ce post (Notez qu’il vaut mieux généralement passer par le dépot de votre distribution, ou une version packagée pour appliquer les mises à jour plus facilement), ici on vise l’aspect didactique, si vous maîtrisez le manuel, vous aurez gérer encore plus facilement les installations « packagées », car la seul différence se situe au niveau des chemins au final.

cd /usr/local/src
wget http://repo.varnish-cache.org/source/varnish-2.1.5.tar.gz
tar xvzf varnish-2.1.5.tar.gz

On va commencer par installer les dépendances (voir ici http://www.varnish-cache.org/docs/2.1/installation/install.html#compiling-varnish-from-source):

yum install automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig

Varnish est maintenant décompressé, on va entrer dans le dossier de configurer, compiler, installer.

On va dans le dossier et on lance l’opération :

cd varnish-2.1.5
sh autogen.sh
sh configure
make

Varnish est maintenant compilé et le binaire fonctionnel (en cas d’erreur, s’assurer que toutes les dépendances sont bien installées).

Comme indiqué dans la documentation vous pouvez maintenant effectuer un test du programme :

(cd bin/varnishtest && ./varnishtest tests/*.vtc)

La plupart des tests doivent renvoyer « passed ». Il se peut qu’une erreur ou deux se glisse, mais pas plus, et c’est sans gravité. Si la plupart des tests ne fonctionnent pas (failed) alors vous avez un problème et il faut revoir la procédure.

On peut maintenant installer :

make install

On copie le fichier de configuration par défaut à la bonne place :

cp redhat/varnish.sysconfig /etc/sysconfig/varnish

On va lier le dossier « etc/varnish » créé lors de l’installation avec le chemin par défaut :

ln -s /usr/local/etc/varnish /etc/varnish

Il nous faut maintenant copier le script de démarrage de varnish à la bonne place, et corriger les chemins dans celui ci.

cp redhat/varnish.initrc /etc/rc.d/init.d/varnish

Puis on édite ce fichier (/etc/rc.d/init.d/varnish) pour corriger les chemins vers les binaires comme suit :
/usr/sbin/varnishd devient /usr/local/sbin/varnishd

Voilà pour le script de lancement/arrêt de varnish, que l’on ajoute dans chkconfig (pour pouvoir le lancer automatiquement plus tard) :

chkconfig --add varnish

Dans le fichier /etc/sysconfig/varnish on peut consulter les options par défaut qu’il faut adapter si vous le souhaitez. Dans mon cas, je souhaite positionner le cache dans un autre endroit, car je manque de place sur la racine.
Pour cela je vais donc changer la valeur de « VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin » pour le faire pointer vers un dossier de mon choix créé pour l’occasion. Libre à vous de faire cette modification selon votre configuration.

Il faudra aussi définir un utilisateur qui existe sur votre système (ou en créer un : adduser varnish), et adapter les « DAEMON_OPTS » à la ligne

-u varnish -g varnish

avec l’utilisateur de votre choix.

Le dossier /usr/local/var/varnish devra appartenir à cet utilisateur et à son groupe (chown utilisateur:groupe /usr/local/var/varnish).

Il faut créer un mot de passe pour l’accès à l’interface d’administration :

echo "votre-password">/etc/varnish/secret

On va maintenant créer une configuration de base pour tester la solution.
On ouvre le fichier /etc/varnish/default.vcl dont le contenu doit être totalement commenté par défaut, et on y ajoute ceci en bas du fichier :

backend default {
      .host = "127.0.0.1";
      .port = "80";
}

Cette configuration va permettre de lancer un essai sans modifier la configuration de votre machine. On défini en gros que la source par défaut est votre serveur sur le port 80, soit le site affiché par défaut quand vous allez sur http://ip_serveur/.

On lance donc le processus :

/etc/rc.d/init.d/varnish start

Vous pouvez maintenant consulter les statistiques et vérifier ainsi que ça tourne en tapant :

varnishstat

(on quitte les stats en appuyant sur la touche « q »)

En fonction de la valeur que vous avez défini dans le fichier /etc/sysconfig/varnish pour la variable « VARNISH_LISTEN_PORT », vous pouvez consulter la page affichée par varnish à l’adresse :
http://votre_serveur:port (où port = la valeur choisie dans le fichier de configuration).

Si vous avez un firewall comme iptables, vous devrez ouvrir le port pour pouvoir consulter la page sur ce port.
Par exemple pour mon test sur le port 8080 :

iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

(ou éditer directement votre fichier /etc/sysconfig/iptables et relancer iptables pour prendre en compte la modif)

Si votre site s’affiche c’est gagné il est pris en compte par varnish sur ce port.

Note : Pour avoir des infos en cas de plantage, il faut lancer varnishd avec les options définies dans /etc/sysconfig/varnish et le parametre « -d », sans quoi varnish ne renvoie aucune information relative au plantage !

Enfin pour rendre le service varnish actif au démarrage nous activons le service avec chkconfig :

chkconfig --level 345 varnish on

Pour la suite, comme la configuration avec par exemple wordpress je vous invite à lire cet excellent POST :
http://blog.nicolargo.com/2010/10/booster-votre-blog-wordpress-avec-varnish.html
ainsi que le wiki de varnish :
http://www.varnish-cache.org/trac/wiki
OU BIEN, la suite de l’opération en configurant varnish-cache avec la gestion des virtualhost :
http://blog.inforeseau.com/2011/05/configurer-varnish-cache-avec-virtualhosts-fedora-redhat-centos

Sources utilisées pour ce post :
http://www.varnish-cache.org
http://www.varnish-cache.org/trac/wiki/VarnishAndWordpress
http://blog.nicolargo.com/2010/10/booster-votre-blog-wordpress-avec-varnish.html

Tags: , , , , , ,

vendredi, mai 6th, 2011 GNU - Linux, Reseau, Technologie

2 Commentaires to Installer Varnish depuis les sources sur Fedora 11

  • tresronours dit :

    Configurer Varnish cache avec des virtualhost et des fichiers de configuration dédiés :
    http://www.varnish-software.com/blog/virtual-hosts-varnish

  • tresronours dit :

    Pour le debug de la configuration varnish-cache, vous pouvez éditer le fichier init afin d’avoir les messages d’erreur dans la console.
    Editez le fichier /etc/init.d/rc.d/varnish (mis en place comme indiqué plus haut) et changer la ligne suivante :

    daemon --pidfile $pidfile  $exec -P $pidfile "$DAEMON_OPTS" > /dev/null 2>&1

    en ceci :

    daemon --pidfile $pidfile $exec -P $pidfile -d "$DAEMON_OPTS"

    En lançant varnish-cache vous aurez ainsi tous les messages d’erreur en console (dont la ligne qui bloque dans vos fichiers VCL). Une fois les erreurs corrigées, replacez la ligne au format original.

    Vous pouvez aussi copier TOUT le bloc « start » du fichier init, le coller, remplacer « start » par « debug », et modifier la ligne comme indiqué juste au dessus, mais que dans la section « debug ».
    Ainsi vous pourrez lancer varnish-cache comme ceci :

    /etc/rc.d/init.d/varnish debug

    Et appeler le mode debug quand vous en avez besoin sans pour autant éditer le fichier init 😉

  • Ajouter un commentaire


     
    mai 2011
    L M M J V S D
    « Avr   Oct »
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031  
     

     
    Suivez moi sur twitter - follow me on twitter
    [FSF Associate Member]
     
    Free Software, Free Society
    VIRTUALISATION :
    Compacter une image virtualbox VDI
    Bon petit tutoriel esxi
    Marche d'appliances vmware
    Installer ESXi sur un disque IDE
    Installer ESXi 3.5 sur un disque USB
    Installer proxmox avec DRBD et migration / réplication à chaud
    Installer OSSEC avec VMware
    Information sur le VDI
    SECURITE - FIREWALL :
    Ouvrir des ports dynamiquement iptables - knockd
    Autre tres bon tuto knockd
    Docs Arp poisoning - Anglais
    Metasploit test de pénétration
    Zone H - sites piratés en temps réel
    Blog invisible things
    Tips protection sécurité wordpress
    Pfsense - distribution firewall opensource - adsl internet failover
    Iproute 2 mini how to - linux advanced routing
    ClearOS - la passerelle sécuritaire lan - wan
    HAUTE DISPONIBILITE :
    CDN - Accélération de la distribution de données
    drbd iscsi ocfs2 dm multipath tutoriel
    Load balancing LVS
    Load balancing opensource list
    HA-Proxy :
    HAproxy - http load balancer
    Simple tutoriel HAproxy
    HAproxy - debian tutoriel
    Centos - Ip failover
    Configuratoin DM-Multipath Redhat
    VMware Doubletake - continuité
    Quelques liens sur la réplication MySQL : Manuel MySQL, chapitre sur la réplication
    Manuel MySQL, Tutoriel clair sur la mise en place
    Autre tuto sur la mise en place de la réplication MySQL
    Références pour optimisation du serveur MySQL
    Utilisation de EXPLAIN mysql pour optimiser vos bases
    optimiser vos bases - requetes et index
    STOCKAGE RESEAU :
    Un outil de clonage disque en reseau
    Internet NAS 250Go 250 accès VPN
    Server ISCSI avec Ubuntu tuto
    ISCSI centos redhat tutoriel
    Gérer et étendre un LVM
    Créer sa piratebox ! trop cool
    Deaddrops, les clés USB dans les murs, aussi cool !
    OPTIMISATION WORDPRESS :
    Télécharger Xenu
    Comment utiliser Xenu
    optimisation hébergement wordpress
    Super howto wordpress (En)
    Test de charge serveur web - Load impact
    VPN - ROUTEUR - LAN:
    Zeroshell - le mini-routeur wifi tout en un
    Retroshare, votre réseau d'échange crypté!
    Openvpn sur centos redhat
    Intégrer Linux dans active directory
    Routage inter-vlan avec Linux
    Routage avec OSPF
    Network Weathermap
    TENDANCES - WEB:
    Boutons twitter
    Analyser les tendances des recherches Google
    Protocole sitemap - robots.txt
    Creer des animations CSS3
    Code php pour interagir avec twitter
    E reputation
    Jquery
    TRUCS ET ASTUCES GNU/LINUX :
    Tuxmachines.org - Actus et tips linux
    Configurer GRUB2 et grub2 ici
    Panoet - en anglais - tips & tricks
    Readylines tips and trick pertinents
    Squid Clamav - proxy antivirus
    Apprendre Unix en 10 minutes
    13 tips sur les expressions régulières
    IE Sous linux IES
    LDAP 2.4 Quickstart guide
    Tutoriel LDAP
    Installation annuaire LDAP
    Serveur Mail Postfix - Dovecot - LDAP - MDS
    Créer un linux personnalisé en ligne - custom linux
    Super site sur linux - en
    Capistrano - déploiement automatisé
    MONITORING :
    Nagios tutoriel et doc
    Nagios plugin NRPE tuto
    Nagios plugin NRPE autre tuto
    Nagios plugin NRPE officiel
    Zabbix - fonctionnalités
    Zabbix - installation
    Guide MRTGsys - grapher la charge locale
    MRTGsys - ajouter des graphs
    MRTGsys - interpréter les données
    Shinken - Monitoring
    Thruk Monitoring webinterface
    Shinken - Tutoriel
    Shinken - Référence chez Nicolargo
    AUTRES LIENS :
    RemixJobs IT jobs
    USB Multiboot
    Reset mot de passe windows
    Java python et autres tips, intéressant !
    Forum inforeseau
    Open Clipart
    Excellent comic en ligne
    Inforeseau.fr
     
    Contrat Creative Commons
    This création is licensed under a Creative Commons Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique 2.0 France License.