Que es Nginx y por qué es posible que deba realizar cambios en él
Nginx es un servidor web. Almacena los archivos del sitio y los envía a pedido a una computadora o dispositivo móvil. Es decir, se necesita para mostrar rápidamente las páginas de Internet. Se utiliza en casi todas las empresas especializadas en desarrollo web. Su función principal es el procesamiento de contenido estático en los sitios web. Su popularidad se explica por la posibilidad de uso gratuito, de código abierto.
El Nginx servidor web hoy es, se podría decir, un estándar de la industria, por lo tanto forma parte de todos los repositorios de sistemas operativos actuales. "Uno click" es posible, pero esto es cierto exactamente hasta que esté satisfecho con la opción "promedio", que es estadísticamente adecuada para la mayoría de los usuarios. Si necesita algo "no estándar", no podría agregar esta característica sin algunos " manipulaciones "especiales". Si desea deshabilitar alguna función, no hay una manera simple también. Además, es posible que sea necesario realizar cambios (principalmente para excluir ciertas funciones) para guardar el sistema. RAM y disco space.
Cómo cambiar el nginx lista de características
Las funciones que nginx podría realizar, al igual que las restricciones de seguridad, están determinadas por el conjunto de módulos incluidos. Desafortunadamentenately, la única forma disponible hoy para modificar la lista de nginx módulos es reconstruir completamente el paquete. El procedimiento para tal recompilación e instalación de nginx se describe a continuación. El artículo utilizará Ubuntu 20.04 como sistema operativo anfitrión.
En primer lugar, debe comprobar la versión de nginx tu Actualmente tienes. Por supuesto, ignora esta verificación, pero existe el riesgo de incompatibilidad de las bibliotecas de software, sin un análisis profundo de los registros del sistema operativo, es posible que este problema no se resuelva. Estás advertido.
nginx -v
Veamos la lista de disponibles. nginx componentes Para facilitar la compilación posterior, puede copiar el resultado del siguiente comando en algún lugar:
nginx -V
El mismo resultado, pero en una forma más legible, se puede obtener usando el comando:
nginx -V 2>&1|xargs -n1|grep module
Instale algunas utilidades necesarias para evitar que los siguientes pasos fallen:
apt-get update; apt install -y build-essential wget libssl-dev libpcre++-dev libgeoip-dev libssl-dev zlib1g-dev libxslt1-dev libgd-dev
Entonces vamos a descargar el nginx código proporcionado en forma comprimida desde el sitio del desarrollador y descomprima el archivo. Para acortar más acciones (para evitar escribir la ruta completa cada vez), vaya a un directorio cuyo nombre coincida con la edición del servidor web:
cd /tmp; wget http://nginx.org/download/nginx-1.18.0.tar.gz; tar -xvf *.gz; cd nginx-1.18.0
Ahora es el momento de comenzar nuestra construcción de configuración. Para insertar un componente, se debe usar la construcción --with-; en consecuencia, para excluirlo simplemente elimine el parametros que describen este módulo. Por ejemplo, apaguemos el componente mail_ssl_module y agreguemos las características de http_geoip_módulo:
./configure --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-lUTckl/nginx-1.18.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-http_geoip_module
Si todo está bien hecho, la imagen es la siguiente:
Comencemos el proceso de compilación en sí:
make; make install
A continuación, consulte la lista de módulos compatibles:
objs/nginx -V 2>&1|xargs -n1|grep module
Nginx fue reconstruido con éxito. Luego reemplace el archivo instalado usando uno compilado. Por eso miramos el nginx edición al principio. Si se ensambló la misma versión que se instaló originalmente desde los repositorios, solo el reemplazo "binario" es suficiente, no se requiere nada más. Reanudar nginx cuando se hace el reemplazo:
mv -f objs/nginx /usr/sbin/nginx; service nginx restart
Conclusión
En el tutorial, revisamos un método sobre cómo agregar o eliminar nginx módulos. Se describe el proceso de compilación de paquetes a partir del código fuente, algunas de las trampas del procedimiento de compilación y el enfoque más simple para evitar problemas en el proceso. Además, puede crear archivos binarios "altamente especializados", por ejemplo, para ahorrar "extremadamente" los recursos del sistema de la máquina.