Ajouter des modules nginx sous Linux
Comment recompiler nginx avec des modules supplémentaires sur Debian, Ubuntu et CentOS.
Lorsque nginx est installé via le gestionnaire de paquets du système d'exploitation, il est impossible d'ajouter ou de supprimer des modules — nginx est livré avec une configuration de build fixe. Pour inclure un module personnalisé, nginx doit être recompilé manuellement depuis les sources.
Étape 1. Récupérer la configuration nginx actuelle
Exécutez la commande suivante et enregistrez la sortie dans un éditeur de texte — vous en aurez besoin lors de l'étape de configuration :
nginx -V
Exemple de sortie :
nginx version: nginx/1.12.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log ...
Dans cet exemple, la version 1.12.1 est installée — téléchargez cette même version à l'étape suivante.
Étape 2. Télécharger les sources de nginx
wget http://nginx.org/download/nginx-1.12.1.tar.gz
Extrayez l'archive et placez-vous dans le répertoire des sources :
tar -xvf nginx-1.12.1.tar.gz
cd nginx-1.12.1
Étape 3. Installer le module PageSpeed
bash <(curl -f -L -sS https://ngxpagespeed.com/install) \
--nginx-version $nginxversion
Sauvegarder tous les modules :
bash <(curl -f -L -sS https://ngxpagespeed.com/install) -m
Étape 4. Configurer nginx avec le nouveau module
Dans la sortie nginx -V enregistrée, copiez les arguments de configuration à partir de --prefix= jusqu'au (mais sans l'inclure) premier --add-module= — les entrées --add-module= existantes ne sont pas nécessaires.
Exécutez ./configure avec ces arguments et ajoutez --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable à la fin :
./configure --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--http-log-path=/var/log/nginx/access.log \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--lock-path=/var/lock/nginx.lock \
--pid-path=/var/run/nginx.pid \
--with-pcre-jit --with-http_gzip_static_module \
--with-http_ssl_module --with-ipv6 \
--without-http_browser_module --with-http_geoip_module \
--without-http_memcached_module --without-http_referer_module \
--without-http_scgi_module --without-http_split_clients_module \
--with-http_stub_status_module --without-http_ssi_module \
--without-http_userid_module --without-http_uwsgi_module \
--add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable
Nos produits et services
Étape 5. Compiler nginx
make
make install
Une fois la compilation terminée, vérifiez que le nouveau module est bien présent :
/etc/nginx/sbin/nginx -V
La sortie doit contenir --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable.
Étape 6. Remplacer le binaire nginx
Arrêtez nginx :
service nginx stop
Renommez le binaire actuel en guise de solution de repli :
mv /usr/sbin/nginx /usr/sbin/nginx_back
Déplacez le binaire nouvellement compilé à sa place :
mv /etc/nginx/sbin/nginx /usr/sbin/nginx
Supprimez le répertoire devenu inutile :
rm -rf /etc/nginx/sbin
Vérifiez que le nouveau binaire est bien utilisé :
nginx -V
La sortie doit contenir --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable.
Démarrez nginx :
service nginx start
Nettoyez le répertoire des sources :
cd ../
rm -rf nginx-1.12.1
Aide
Une question ou besoin d'un coup de main ? Écrivez-nous via le système de tickets — nous sommes toujours là pour vous aider !