Compiler Nginx 1.6.2 pour le Raspberry Pi

Nginx reste pour moi l’un des meilleurs serveurs web pour le Raspberry Pi. A la fois simple de configuration, il est performant, ce qui est parfait pour une petite configuration. Voici comment obtenir la dernière version très simplement.

Nginx-logo

Oui mais pourquoi vouloir la dernière version ?

Déjà pour profiter des derniers patchs de sécurité. Surtout si votre Raspberry est exposé à l’extérieur ! Certaines de ces failles sont présentes depuis la version 0.8 !

Coté améliorations, elles sont nombreuses, certaines techniques, mais les plus importantes sont (pour reprendre celles d‘un précédant article) :

  • Support de SPDY (speedy) 3.1, protocole initié par Google et supporté par plusieurs navigateurs (IE 11+, Chrome, Firefox 23+). Le protocole permet d’accélérer les chargements de page via une gestion des priorités dans les éléments qui composent une page
  • Authentification via un serveur externe
  • Revalidation du cache grâce à l’en-tête « If-modified-Since ». Permet de servir les réponses sur base du cache géré par Nginx.
  • Plusieurs améliorations sur la couche SSL
  • Améliorations sur le streaming des MP4

Les étapes sont les suivantes :

  1. Installer les paquets nécessaires à la compilation
    apt-get install -y make gcc libpcre3 libpcre3-dev zlib1g-dev libbz2-dev libssl-dev
  2. Télécharger la version 1.6.2 de Nginx
    wget http://nginx.org/download/nginx-1.6.2.tar.gz
  3. Décompresser l’archive
    tar zxvf nginx-1.6.2.tar.gz
    cd nginx-1.6.2
  4. Lancer la configuration
    ./configure

Vous voilà presque prêt à lancer la compilation. Pourquoi presque ? Parce que c’est maintenant que vous devez décider de quels modules vous voulez profiter. C’est l’un des inconvénients de Nginx, c’est que les modules ne se chargent pas de manière dynamique. Certains sont chargés par défaut (voir la liste ici), d’autres sont à choisir dès le début (voir la liste ici)

Voici un exemple de modules que vous pouvez ajouter :

  • Support SSL
  • Support SPDY
  • Compression automatique des fichiers statiques
  • Décompression à la volée des réponses compressées

La commande sera alors la suivante :

./configure --with-http_gzip_static_module --with-http_gunzip_module --with-http_spdy_module --with-http_ssl_module

Pour aller encore plus loin, vous pouvez soit écrire votre propre module (exprimez votre coté barbu !), soit ajouter un autre module déjà réalisé. Vous trouverez une liste sur cette page. Attention quand même à pas installer tout et n’importe quoi 😉 Une fois l’archive récupérée et décompressée, vous pourrez l’ajouter avec l’option –add-module=/path/to/module/source à la commande configure (vous pouvez en mettre autant que vous voulez)

Vous pouvez maintenant démarrer la compilation avec la commande

make

Le temps de compilation est assez rapide (moins de 10 minutes) même sans avoir overclocké le Raspberry. Puis l’installation avec

make install

Vous voilà avec la dernière version de Nginx !

Nginx 1.6.2 on Raspberry Pi - armhf

Vous aimerez aussi...

  • Libor Gabaj

    S'il vous plaît m'aider avec Nginx module RRDGraph. J'ai fait tout en fonction de votre guide, rrdtool installé 1.4.7, et téléchargé le module mod_rrd_graph-0.2.0. Mais à « ./config –Ajouter un module » J'ai obtenu l'erreur « vérification pour RRDtool … introuvable;./configure: erreur: ngx_rrd_graph nécessite RRDtool 1.3 ou une version ultérieure. ». Redémarrage ni ajouter chemin de rrdtool dans le module’variable de configuration s « ngx_feature_path » a contribué à. Ce que je vais faire ou vérifier afin de compiler le module s'il vous plaît?

    • Hello
      It sounds as if your installation was not made in a path expected by the configuration tool. Can you please look in the source of the module and check where the module needs RRDTool ? Then you compare with the path where RRDTool is installed.

  • Perso, j’utilise Monkey comme serveur web. Plus réactif que Nginx sur mon Raspberry Pi. Mais je n’utilise ni Bdd, ni PHP (site statique). http://www.monkey-project.com/ pour ceux que ça intéresse.