88 Shares 9271 views

Nginx: instalación e instalación

¿Qué es apache, nginx? El propósito, las características, las opciones de configuración son cosas que todo desarrollador web debe estar familiarizado con el fin de poner a prueba sus logros.

Acerca de nginx

Esta herramienta tiene un proceso principal y varios procesos de trabajo. El primero es leer y probar la configuración. El control de los procesos de trabajo también está bajo su control. La tarea de este último es procesar las solicitudes entrantes. Nginx utiliza un modelo basado en eventos. Además, los mecanismos que dependen del sistema operativo se utilizan para lograr una asignación eficiente de las solicitudes directamente entre flujos de trabajo. Su número siempre se indica en el archivo de configuración. El valor puede fijarse o establecerse automáticamente, en función del número de núcleos de procesador con los que puede trabajar. En nginx, el sistema y los módulos se configuran utilizando el archivo de configuración. Por lo tanto, si es necesario cambiar algo, entonces es necesario buscarlo. Normalmente está en la directiva / etc / nginx (pero la ruta puede cambiar cuando se utilizan otros sistemas) y tiene una extensión .conf.

Inicio, reinicio y registros

Para ello, debe obtener el archivo ejecutable para que funcione. El servidor nginx sólo se puede configurar cuando se inicia. El control se realiza llamando al ejecutable con la opción -s. Para ello, utilice la entrada siguiente:

Nginx -s señal

En este caso, puede sustituir dichos comandos (debe proceder del usuario que lanzó la herramienta):

  1. Deténgase. Se utiliza para el apagado rápido.
  2. Vuelva a cargar El comando es necesario para volver a cargar el archivo de configuración. El problema es que los cambios no se aplicarán mientras el archivo está funcionando. Y para que surtan efecto, es necesario un reinicio. Tan pronto como se reciba esta señal, el proceso principal comenzará a comprobar la corrección del componente sintáctico del archivo de configuración e intentará aplicar las instrucciones disponibles. Si falla, revertirá los cambios y funcionará con la configuración anterior. Si todo salió bien, se iniciarán nuevos flujos de trabajo y se enviará una solicitud a la antigua.
  3. Salir. Aplicable para el apagado suave. Aplicable si necesita esperar hasta que finalicen las solicitudes actuales.
  4. Reabrir. Cierre y abra los archivos de registro.

Uso de utilidades

Los procesos también se pueden configurar utilizando herramientas Unix (como ejemplo, se considerará la utilidad kill). Por lo general, utilizan el mecanismo para enviar al proceso una señal directamente a los datos. Están vinculados por ID. Estos datos se almacenan en el archivo nginx.pid. Supongamos que estamos interesados en el proceso número 134. Entonces para la terminación lisa necesitamos enviar la información siguiente:

Kill -s QUIT 1628

Digamos que queremos ver una lista de todos los archivos en ejecución. Utilizamos la utilidad ps para hacer esto. El comando se verá así:

Ps -ax | Grep nginx

Es decir, como se puede ver, cuando se utilizan herramientas adicionales, se indica que es su aplicación. Y ahora vamos a concentrarnos en cómo nginx-tuning se hace.

Estructura del archivo de configuración

Instalación y configuración nginx proporciona trabajo con módulos. Se configuran utilizando directivas que se especifican en el archivo de configuración. Son simples y en bloque. El primer tipo de directivas consiste en un nombre y parámetros que están separados por espacios, y su final está indicado por un punto y coma – (;). El bloque tiene una estructura similar. Pero en esta directiva, en lugar del final, se coloca un conjunto de instrucciones adicionales, que se colocan en tirantes ({direcciones}). Si los nombres y parámetros de otros procesos se pueden colocar en ellos, entonces tales construcciones ya se llaman contexto. Un ejemplo es http, ubicación y servidor.

Distribución de contenido estático

Esta es una de las tareas más importantes que enfrenta la configuración nginx. La distribución de contenido estadístico implica imágenes y páginas HTML (no dinámicas). Digamos que necesitamos un trabajo de una sola vez para configurar un clúster de nix nginx. ¿Es difícil hacer esto? No, y veamos un ejemplo. Antes de proceder a ella, es necesario detallar las condiciones del problema. Así pues, dependiendo de las peticiones, los archivos vendrán de diversos directorios locales. Por lo tanto, en / data / www tenemos documentos HTML. Y el directorio / data / images contiene imágenes. La configuración nginx óptima en este caso requiere editar el archivo de configuración, en el que debe configurar el bloque de servidor dentro de http. Para soporte, también se utilizarán dos ubicaciones.

Implementación: servidor

Por lo tanto, en primer lugar, tenemos que crear los directorios y colocar los archivos con las extensiones necesarias (en html es necesario agregar contenido). A continuación, abra el archivo de configuración. En él, por defecto, ya hay varios bloques de servidor, que en masa se comentan. Para lograr el resultado óptimo, este proceso se debe hacer con respecto a todos los componentes por defecto. A continuación, agregue un nuevo bloque de servidor con este código:

Http {

Servidor {

}

}

El archivo de configuración puede trabajar con varios de estos bloques. Pero deben diferir en sus nombres y puertos, a través de los cuales se reciben los datos.

Implementación: ubicación

Se define dentro del servidor:

Ubicación / {

Root / data / www;

}

La presencia del signo "/" es necesario para comparar los datos recibidos y ver si existe una dirección de la consulta procesada aquí. Si no hay ningún problema, especifique la ruta / datos / www al archivo requerido, que está en este sistema local. Si hay una coincidencia con varios bloques, entonces se selecciona la que tiene el prefijo más largo. En el ejemplo anterior, su longitud es una, es decir, el uso será únicamente si no hay "competidores". Ahora vamos a mejorar:

Ubicación / images / {

Raíz / datos;

}

Como se puede determinar, estamos buscando imágenes. Y ahora vamos a combinar todo el trabajo que fue anterior, y la configuración en este momento se parece a esto:

Servidor {

Ubicación / {

Root / data / www;

}

Ubicación / images / {

Raíz / datos;

}

}

Esta es la versión de trabajo, que sucede el número de puerto estándar 80. Este servidor se puede acceder fácilmente en el equipo local, si va a la dirección: http: // localhost /. ¿Cómo funciona todo esto?

El funcionamiento del ejemplo

Por lo tanto, cuando vienen peticiones que comienzan con / images, entonces los archivos del servidor del directorio correspondiente serán enviados al usuario. Si está ausente, se transmitirá la información que indica el error 404. Si está configurando nginx en el equipo local, solicitando http: //localhost/images/example.png obtendremos un archivo cuya ubicación es /data/images/example.png. Si especifica un carácter "/", la búsqueda se realizará en el directorio / data / www. Pero solo cambiamos la configuración. Para iniciarlo, debe reiniciarse. Para ello, utilice el comando nginx -s reload. En el caso de que no sea posible un trabajo normal, en los archivos error.log y access.log ubicados en la directiva / usr / local / nginx / logs, puede buscar la causa de los fallos.

Creación de un servidor proxy simple

Se puede decir acerca de nginx – la configuración de este objeto es una de las aplicaciones frecuentes (y bastante fácil, entre otras cosas). Aquí se utiliza el principio del servidor, que acepta la solicitud, y luego los redirige a los sitios necesarios. Después de eso, se espera una respuesta de ellos, que los dirige a quien estableció la tarea. Veamos un ejemplo de creación de un punto base. Se encargará de las solicitudes de los usuarios y proporcionarles imágenes del directorio local. Por lo tanto, en el bloque http, agregue un servidor más con el siguiente contenido:

Servidor {

Escuchar 8080;

Root / data / up1;

Ubicación / {

}

}

Y ahora vamos a descifrar para usted: un servidor simple se crea. Se escuchará en el puerto 8080. No especificar escuchar, a continuación, el servidor se ejecutará en el 80 º. Todas las solicitudes dentro del sistema de archivos local dirigidas al directorio / data / up1 (por supuesto, tendrán que ser creadas antes) se mostrarán. Para poder comprobar allí, usted necesita poner el archivo de index.html. Al colocar la directiva raíz en el contexto del servidor, podemos usar la ubicación bajo cualquier condición (ya que, por lo tanto, se eliminan las restricciones de acceso). Ahora estamos trabajando en la creación de un servidor proxy. Para su funcionamiento, necesitamos una directiva proxy_pass, para la cual el protocolo, el nombre y el puerto del objeto serán especificados como parámetros (para la conexión local parecerá http: // localhost: 8080). El resultado es el siguiente:

Servidor {

Ubicación / {

Proxy_pass http: // localhost: 8080;

}

Ubicación / images / {

Raíz / datos;

}

}

Si está revisando el código y analizándolo, puede notar que se cambió el segundo bloque de ubicación. Por lo tanto, en este caso puede trabajar con extensiones de imagen típicas. De una manera un poco diferente, se podría mostrar de esta manera:

Ubicación ~ . (Gif | jpg | png) $ {

Raíz / datos / imágenes;

}

La configuración final del servidor proxy es la siguiente:

Servidor {

Ubicación / {

Proxy_pass http: // localhost: 8080 /;

}

Ubicación ~ . (Gif | jpg | png) $ {

Raíz / datos / imágenes;

}

}

Filtrará las solicitudes al final de las cuales hay extensiones especificadas, y las enviará a la persona que pidió los archivos. No olvide que si desea comprobar el archivo de configuración, tendrá que reiniciarse. Y créanme, este es el ajuste nginx más simple. Si abre un archivo de configuración para un servidor Vkontakte u otra compañía grande, tendrá más código que palabras en este artículo.