Comprensión profunda de nginx server_name

1. Conceptos básicos

nginx es un servidor web liviano y un servidor proxy inverso de alto rendimiento. server_name es uno de los parámetros más importantes en el archivo de configuración de nginx y se utiliza para especificar el nombre de dominio o la dirección IP del host virtual. Si el valor en el encabezado Host de una solicitud coincide con server_name, nginx usará esa configuración de host virtual para procesar la solicitud.

Por ejemplo:

servidor { 
    escuchar 80; 
    nombre_servidor www.ejemplo.com; 
    ubicación / { 
        raíz /var/www/html; 
    } 
}

Cuando el servidor recibe una solicitud con el encabezado Host www.example.com, nginx usará esta configuración para procesarla.

2. Cómo utilizar nombre_servidor

server_name puede aceptar múltiples parámetros y nginx intentará hacer coincidir estos parámetros con el encabezado Host de la solicitud. Estas son las diferentes formas de usarlo:

1. dirección IP

Puede utilizar nombre_servidor para especificar la dirección IP del servidor. El uso es el siguiente:

servidor { 
    escuchar 80; 
    nombre_servidor 192.168.1.100; 
    ubicación / { 
        raíz /var/www/html; 
    } 
}

nginx utilizará esta configuración cuando el encabezado del Host solicitado coincida con esta dirección IP.

2. Nombre de dominio

server_name también puede especificar un nombre de dominio, el uso es el siguiente:

servidor { 
    escuchar 80; 
    nombre_servidor www.ejemplo.com; 
    ubicación / { 
        raíz /var/www/html; 
    } 
}

nginx utilizará esta configuración cuando el encabezado del Host solicitado coincida con el nombre de dominio.

3. Expresiones regulares

nombre_servidor también se puede hacer coincidir mediante expresiones regulares. El uso es el siguiente:

servidor { 
    escuchar 80; 
    nombre_servidor ~^(www\.)?ejemplo\.com$; 
    ubicación / { 
        raíz /var/www/html; 
    } 
}

Esta configuración puede coincidir con dos nombres de dominio: www.example.com o ejemplo.com.

4. comodín

server_name también admite caracteres comodín, el uso es el siguiente:

servidor { 
    escuchar 80; 
    nombre_servidor *.ejemplo.com; 
    ubicación / { 
        raíz /var/www/html; 
    } 
}

Esta configuración puede coincidir con todos los nombres de dominio que terminan en .example.com.

3. Prioridad de nombre_servidor

Si el encabezado del Host de una solicitud coincide con varios parámetros de nombre_servidor, nginx seleccionará la configuración coincidente más precisa para su procesamiento. Si no se encuentra una configuración que coincida exactamente, nginx utiliza la primera configuración para el procesamiento.

Por ejemplo:

servidor { 
    escuchar 80; 
    nombre_servidor ejemplo.com; 
    ubicación / { 
        raíz /var/www/html; 
    } 
} 

servidor { 
    escuchar 80; 
    nombre_servidor www.ejemplo.com; 
    ubicación / { 
        raíz /var/www/html; 
    } 
}

Cuando el encabezado del Host de la solicitud es www.example.com, nginx utilizará la segunda configuración para el procesamiento porque es la coincidencia más precisa. Cuando el encabezado del Host de la solicitud es example.com, nginx usará la primera configuración para el procesamiento porque es la única coincidencia.

4. Otros asuntos que requieren atención

Debe prestar atención a lo siguiente cuando utilice nombre_servidor:

  • nombre_servidor no debe contener el número de puerto.
  • No utilice varios nombres de dominio separados por comas en nombre_servidor, esto es impredecible en el trabajo de nginx.
  • El valor predeterminado de nombre_servidor es localhost.
  • Puede haber varios hosts virtuales con el mismo nombre_servidor en un archivo de configuración de nginx.

conclusión V

Un conocimiento profundo de nginx server_name es muy importante para configurar correctamente los hosts virtuales. Espero que este artículo pueda ayudar a todos a comprender y utilizar mejor este parámetro.

Supongo que te gusta

Origin blog.csdn.net/tjsoft/article/details/132039415
Recomendado
Clasificación