Explicación detallada de las funciones y configuración de Nginx.

1. Descripción general de Nginx

Nginx es un servidor proxy inverso y HTTP de alto rendimiento, así como un servidor proxy IMAP/POP3/SMTP. Nginx se usa ampliamente en el desarrollo web del lado del servidor, principalmente para proporcionar servicios de acceso web eficientes y estables. Las características principales de Nginx incluyen: altas capacidades de procesamiento de conexiones concurrentes, alta estabilidad, configuración flexible y funciones ricas.

1.1 El papel de Nginx

Las principales funciones de Nginx se pueden dividir en los siguientes aspectos:

  • Servicio de recursos estáticos : a través de protocolos eficientes de transferencia de archivos, Nginx puede proporcionar rápidamente a los usuarios servicios de páginas web estáticas.

  • Proxy inverso : Nginx se puede utilizar como servidor proxy inverso para lograr el equilibrio de carga y mejorar la velocidad y la estabilidad del acceso al sitio web.

  • Equilibrio de carga : al asignar diferentes solicitudes a diferentes servidores backend, Nginx puede lograr el equilibrio de carga y mejorar la disponibilidad del servicio.

  • Servidor HTTP : Nginx también se puede utilizar como servidor HTTP para manejar solicitudes HTTP.

  • Servidor proxy de correo : Nginx también se puede utilizar como servidor proxy IMAP/POP3/SMTP.

1.2 Ventajas de Nginx

  • Altas capacidades de procesamiento concurrente : Nginx utiliza un modelo de arquitectura basado en eventos y puede manejar una gran cantidad de conexiones simultáneas.

  • Alta eficiencia en el uso de memoria : Nginx ocupa un espacio de memoria muy pequeño y se puede mantener en un nivel bajo incluso cuando se procesa una gran cantidad de solicitudes simultáneas.

  • Alta estabilidad : Nginx tiene una estabilidad muy alta y puede mantener un funcionamiento estable incluso en entornos de alta concurrencia y alta carga.

  • Configuración flexible : el formato del archivo de configuración de Nginx es simple y claro, y puede responder de manera flexible a diversas necesidades.

  • Funciones ricas : Nginx tiene una gran cantidad de módulos y funciones integrados, como compresión gzip, reescritura de URL, compatibilidad con SSL, etc.

2. Configuración básica de Nginx

Los archivos de configuración de Nginx generalmente se encuentran en las rutas /etc/nginx/nginx.conf, o en /usr/local/nginx/conf, /usr/local/etc/nginxetc. Antes de realizar la configuración, debe tener cierto conocimiento del archivo de configuración de Nginx.

2.1 Estructura del archivo de configuración de Nginx

El archivo de configuración de Nginx consta de directivas y bloques. Las instrucciones van seguidas de parámetros, separados por espacios, y cada instrucción ;termina con un punto y coma. Los bloques están encerrados entre llaves {}y pueden contener instrucciones u otros bloques.

Los principales bloques de configuración son:

  • main (configuración global) : configura instrucciones que afectan a nginx globalmente. Incluyendo el usuario que ejecuta el servidor nginx, la ruta de almacenamiento PID del proceso nginx, la ruta de registro, la introducción del archivo de configuración, la cantidad de procesos de trabajo que se pueden generar, etc.

  • eventos : la configuración afecta el servidor nginx o la conexión de red del usuario.

  • http : Se pueden anidar varios servidores para configurar la mayoría de funciones como proxy, caché, definición de registros, etc. y la configuración de módulos de terceros.

  • servidor : Configure los parámetros relevantes del host virtual, puede haber varios en un http.

  • ubicación : Configure el enrutamiento de solicitudes y el procesamiento de varias páginas.

2.2 Ejemplo de configuración básica

A continuación se muestra un ejemplo de un archivo de configuración básico de Nginx:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                                           '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

En este archivo de configuración, Nginx nginxse ejecuta como usuario, utilizando un proceso de trabajo, y la ruta del registro de errores es /var/log/nginx/error.log. El número máximo de conexiones permitidas por proceso de trabajo es 1024. El módulo HTTP incluye un host virtual que escucha en el puerto 80, el nombre del servidor es localhost, el directorio raíz del archivo estático es /usr/share/nginx/htmly la página de inicio predeterminada es index.htmlo index.htm.

2.3 Explicación detallada de los archivos de configuración

  • usuario : el usuario y grupo de usuarios bajo el que se ejecuta Nginx. Por ejemplo:user www www;

  • Workers_processes : la cantidad de procesos de trabajo, generalmente igual a la cantidad de CPU.

  • error_log : ruta del registro de errores, puede especificar el nivel, como error_log /var/log/nginx/error.log warn;. Los niveles de error de menor a mayor son: depuración, información, aviso, advertencia, error, crítico, alerta y emergencia.

  • pid : la ruta al archivo PID que almacena el proceso principal.

  • Workers_connections : el número máximo de conexiones permitidas por proceso de trabajo.

  • incluir : introduce otros archivos de configuración.

  • default_type : tipo de archivo predeterminado, el valor predeterminado es application/octet-stream.

  • access_log : ruta del registro de acceso.

  • sendfile : permite que el método sendfile transfiera archivos.

  • keepalive_timeout : tiempo de espera de conexión largo, la unidad es segundos.

  • servidor : configura un host virtual.

  • escuchar : puerto de escucha.

  • nombre_servidor : nombre del servidor.

  • ubicación : URI utilizado para manejar solicitudes.

  • raíz : se utiliza para especificar el directorio raíz para el procesamiento de solicitudes.

  • índice : nombre de archivo de la página de inicio predeterminada.

  • error_page : página de manejo de errores.

3. Configuración avanzada de Nginx

Además de la configuración básica, Nginx también tiene muchas configuraciones avanzadas, como proxy inverso, equilibrio de carga, reescritura de URL, etc.

3.1 Configuración de proxy inverso

Nginx se puede utilizar como servidor proxy inverso para reenviar las solicitudes de los clientes al servidor backend. Esto puede ocultar la dirección real del servidor y mejorar la seguridad del servidor. proxy_passLa configuración del proxy inverso es muy simple: solo necesita usar las instrucciones en el bloque de ubicación para especificar la dirección del servidor backend.

Por ejemplo:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:8080;
    }
}

En esta configuración, todas example.comlas solicitudes de se reenviarán a localhost:8080.

3.2 Configuración de equilibrio de carga

Nginx puede lograr equilibrio de carga y distribuir solicitudes a múltiples servidores backend para mejorar la disponibilidad y el rendimiento del servicio. Nginx admite una variedad de algoritmos de equilibrio de carga, incluidos sondeos, conexiones mínimas, hash de IP, etc.

A continuación se muestra una configuración de equilibrio de carga utilizando el algoritmo de operación por turnos:

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://backend;
        }
    }
}

En esta configuración, backend1.example.com, backend2.example.comy backend3.example.comse turnarán para manejar las solicitudes.

3.3 Configuración de reescritura de URL

Nginx puede rewriteimplementar la reescritura de URL mediante instrucciones para convertir la URL solicitada en otra URL. Esto es muy útil para implementar funciones como la optimización de motores de búsqueda y la migración de sitios web.

Supongo que te gusta

Origin blog.csdn.net/orton777/article/details/131984934
Recomendado
Clasificación