Apache IP y hosts virtuales basados en nombres explicados
- 3058
- 108
- Jaime Delgadillo
Con el uso de hosts virtuales podemos hacer un httpd
servidor administrar múltiples sitios web. Podemos usar hosts virtuales basados en IP y nombres; Cuáles son las diferencias entre ellos?
Cómo Apache decide qué de los hosts virtuales debería ser
Se utiliza para responder a una solicitud de cliente? Responderemos estas preguntas en esto
Artículo, sigue leyendo!
En este tutorial aprenderás:
- ¿Cuáles son las diferencias entre IP y hosts virtuales basados en nombres?
- Cuál es el Escuchar directiva y cómo se usa
- Cómo Apache decide qué host virtual debe usarse para responder a una solicitud
Requisitos y convenciones de software utilizados
Categoría | Requisitos, convenciones o versión de software utilizada |
---|---|
Sistema | Distribución independiente |
Software | No se necesita software específico |
Otro | Familiaridad con el servidor web Apache y los conceptos básicos HTTP |
Convenciones | # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominiops - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado |
La directiva "escuchar"
Lo primero que debe tener en consideración es el Escuchar
directiva. Esta directiva es obligatoria y es necesaria para decirle al httpd
servidor a lo que Puerto
combinación debería escuchar las solicitudes. Por defecto, el servidor generalmente está configurado para escuchar cada IP
en el puerto 80
.
En /etc/httpd/conf/httpd.confusión
cual es el principal httpd
Archivo de configuración en sistemas Fedora/Rhel/Centos, en la línea 45
, Por ejemplo, podemos leer:
Escucha 80
Como puede ver, solo se especifica el puerto con el Escuchar
directiva. Como resultado, el servidor escuchará en ese puerto en todas las direcciones IP de la máquina. Si se especifica una dirección, en su lugar, el servidor solo escuchará en el proporcionado IP: puerto
combinación.
El Escuchar
La directiva se puede repetir varias veces, por lo tanto, es muy fácil de especificar múltiples combinaciones.
VirtualHost Matching
Una vez que el servidor está configurado para escuchar una dirección o puerto específico, Apache debe decidir qué virtualhost debe usarse para cumplir con la solicitud del cliente. Antes de ver los pasos involucrados en esta decisión, veamos brevemente cómo se define un anfitrión virtual.
La directiva utilizada para crear y configurar host virtual es Anfitrión virtual
; Utiliza la siguiente sintaxis:
…
Como podemos observar, cada uno Anfitrión virtual
La directiva necesita un addr
; se puede especificar como:
- Una dirección IP, ya sea IPv4 o IPv6 (las direcciones IPv6 deben estar encerradas en soportes cuadrados);
- Un nombre de dominio totalmente calificado;
- A
*
comodín (esto coincidirá con todas las direcciones)
Todos los parámetros y configuraciones realizadas dentro del Las etiquetas son "locales" de ese host virtual específico. Aquí hay un ejemplo de una configuración de host virtual:
Servername: www.ejemplo.com documentroot "/var/www/ejemploone"
O, usando un comodín:
Servername: www.ejemplo.com documentroot "/var/www/ejemploone"
Lo primero que hace el servidor es analizar, en orden, cada host virtual, y verificar si su addr
coincide con la solicitud. Es importante notar que las direcciones IP definidas tienen prioridad sobre los comodines, que se consideran solo si no se encuentran coincidencias exactas. En este punto podemos tener tres casos:
- Solo un host virtual coincide con la solicitud;
- No hay hosts virtuales que coincidan con la solicitud;
- Múltiples host virtual coincide con la solicitud;
La primera resolución de casos es fácil: si la solicitud del cliente coincide solo con un host virtual específico, el httpd
El servidor responde sirviendo el contenido relacionado con ese host virtual. En este caso hablamos Basado en IP
hosts virtuales.
El segundo caso también se explica fácilmente: si ninguna configuración de host virtual satisface la solicitud del cliente, la configuración de servidor predeterminada se utiliza para responder a la solicitud. Para la configuración predeterminada, pretendemos que todo establezca fuera de .
En el tercer caso, múltiples hosts virtuales coinciden con la solicitud del cliente. Cuando esto sucede, el servidor debe discriminar dependiendo de otro factor que no sea el IP: puerto
Combinación: el esquema y el nombre de host que usa el host virtual para identificarse.
Hosts virtuales basados en nombres
El servidor examina cada host virtual coincidente en orden de definición y selecciona cuál debe usarse dependiendo de la solicitud solicitada nombre de host
. Estos se llaman hosts virtuales "basados en nombres". El primer host virtual que coincide con la solicitud se usa. Si no hay coincidencias, el servidor usa el primero definido Anfitrión virtual
como retraso.
La principal ventaja de usar hosts virtuales basados en nombres es que podemos ejecutar múltiples sitios web en la misma dirección IP. Veamos un ejemplo de un VirtualHost basado en nombre:
Servername www.servidor.com documentroot/var/www/serverOne
Desde *: 80
se utiliza como dirección, el host virtual coincidirá con cada solicitud realizada en el puerto 80
. Lo que marca la diferencia en este caso es el Nombre del servidor
directiva. Si se omite esta directiva, el servidor intentará obtener un nombre de dominio totalmente calificado (FQDN) basado en el nombre de host del sistema operativo.
El servidor verifica si el nombre de host especificado en la solicitud coincide con la configurada a través de la Nombre del servidor
Directiva, en este caso www.servidor.comunicarse
. Si lo hace, el contenido especificado con el Raiz del documento
directiva se le sirve al cliente.
Dentro de una configuración de host virtual también es posible definir uno o más alias, para que coincidan con múltiples nombres de host. Esto se logra usando el Servidoralias
directiva:
Servername www.servidor.com serveralias *.servidor.com documentroot/var/www/serverOne
En la configuración anterior agregamos un Servidoralias
instrucción usando un comodín. La configuración ahora coincidirá también con todos los subdominios de servidor.comunicarse
.
Hosts virtuales basados en IP
Los hosts virtuales basados en IP, como ya vimos, son básicamente lo que el httpd
El servidor usa de forma predeterminada. Al usarlos, la capacidad de servir múltiples sitios web se basa en la solicitud del cliente IP: puerto
combinación.
Se dice por sí mismo que, para usar este tipo de hosts virtuales, una máquina debe tener múltiples direcciones de red. Esto no significa que se requieran múltiples interfaces de red física, ya que se pueden asignar múltiples direcciones a la misma interfaz (esto se llama Alias de IP
), y también se pueden crear interfaces virtuales (quiero saber cómo crear una interfaz de red virtual en Linux?
Eche un vistazo a nuestro artículo sobre cómo crear interfaces de red virtuales en Linux. Aquí hay dos ejemplos de hosts virtuales basados en IP:
Escuchar 8080 ServerName: www.ejemplo.com documentRoot "/var/www/ejemploe" Servername www www.Exampletwo.com documentRoot "/var/www/exampletwo"
Arriba podemos ver que incluso si los dos hosts virtuales tienen la misma dirección IP, se especifica un puerto diferente en el segundo ejemplo: 8080
. Para que el servidor pueda escuchar ese puerto, usamos el Escucha 8080
directiva.
Conclusión
En este tutorial vimos cómo funcionan los anfitriones virtuales de Apache. Aprendimos la diferencia entre IP y hosts virtuales basados en nombres, y cómo el servidor determina qué configuración debe usarse para responder a una solicitud de cliente. Por favor, eche un vistazo a la instalación del artículo de Apache si desea saber más sobre cómo configurar un host virtual Apache.
Tutoriales de Linux relacionados:
- Cómo migrar apache a nginx convirtiendo virtualhosts en ..
- Una introducción a la automatización, herramientas y técnicas de Linux
- Mastering Bash Script Loops
- Cosas para instalar en Ubuntu 20.04
- Cómo configurar un servidor OpenVPN en Ubuntu 20.04
- Guía de solución de problemas GNU/Linux General para principiantes
- Cómo crear una pila de lámparas basada en Docker usando Docker en ..
- Crear redireccionamiento y reescribir reglas en .Htaccess en Apache ..
- Cómo administrar hosts virtuales dinámicos con Apache y el ..
- Cómo trabajar con la API REST de WooCommerce con Python