Añadir módulos de nginx en Linux
Cómo recompilar nginx con módulos adicionales en Debian, Ubuntu y CentOS.
Cuando nginx se instala a través del gestor de paquetes del sistema operativo, no es posible añadir ni eliminar módulos — nginx se entrega con una configuración de build fija. Para incluir un módulo personalizado, nginx debe recompilarse manualmente desde el código fuente.
Paso 1. Obtener la configuración nginx actual
Ejecuta el siguiente comando y guarda la salida en un editor de texto — la necesitarás durante el paso de configuración:
nginx -V
Ejemplo de salida:
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 ...
En este ejemplo está instalada la versión 1.12.1 — descarga esa misma versión en el siguiente paso.
Paso 2. Descargar el código fuente de nginx
wget http://nginx.org/download/nginx-1.12.1.tar.gz
Extrae el archivo y entra en el directorio de fuentes:
tar -xvf nginx-1.12.1.tar.gz
cd nginx-1.12.1
Paso 3. Instalar el módulo PageSpeed
bash <(curl -f -L -sS https://ngxpagespeed.com/install) \
--nginx-version $nginxversion
Guardar todos los módulos:
bash <(curl -f -L -sS https://ngxpagespeed.com/install) -m
Paso 4. Configurar nginx con el nuevo módulo
En la salida guardada de nginx -V, copia los argumentos de configuración desde --prefix= hasta (sin incluir) el primer --add-module= — las entradas --add-module= existentes no son necesarias.
Ejecuta ./configure con esos argumentos y añade --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable al final:
./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
Nuestros servicios y productos
Paso 5. Compilar nginx
make
make install
Una vez finalizada la compilación, verifica que el nuevo módulo esté presente:
/etc/nginx/sbin/nginx -V
La salida debe incluir --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable.
Paso 6. Reemplazar el binario de nginx
Detén nginx:
service nginx stop
Renombra el binario actual como punto de retorno:
mv /usr/sbin/nginx /usr/sbin/nginx_back
Mueve el binario recién compilado a su lugar:
mv /etc/nginx/sbin/nginx /usr/sbin/nginx
Elimina el directorio que ya no es necesario:
rm -rf /etc/nginx/sbin
Verifica que el nuevo binario esté en uso:
nginx -V
La salida debe incluir --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable.
Inicia nginx:
service nginx start
Elimina el directorio de fuentes:
cd ../
rm -rf nginx-1.12.1
Ayuda
¿Tienes dudas o necesitas ayuda? Escríbenos a través del sistema de tickets — siempre estamos aquí para ayudarte!