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.