Cómo configurar hosts virtuales con el servidor Web Apache en Linux

A+ A-

En este artículo, usted aprenderá acerca de cómo configurar hosts virtuales Apache en una Ubuntu Linux. Durante este proceso, usted aprenderá cómo servir sitios diferentes para diferentes usuarios en función del dominio / sitio que está solicitando.

Apache Web Server

El servidor web Apache es la forma más popular y poderoso de servir a los sitios web en Internet. Se utiliza por más de la mitad de todos los sitios activos en el Internet y es muy potente y flexible.

Apache da su funcionalidad y los componentes de las unidades individuales que pueden personalizarse y configurarse de forma independiente. La unidad básica que describe un sitio o un dominio se llama una máquina virtual.

Esto permite al administrador utilizar un servidor para alojar varios dominios o sitios con una sola interfaz o la dirección IP mediante el uso de un mecanismo.

Instalación de Apache

 $ Sudo apt-get update
$ Sudo apt-get install apache2 

Después de completar estos pasos, podemos empezar.

Con fines de demostración, vamos a configurar Apache para que un servidor virtual para webserver1.com y otro para webserver2.com. Esto será como una guía de referencia, pero se debe sustituir su propio sitio / dominios.

Crear la estructura de directorios

El primer paso en este caso sería que, una estructura de directorios toda responsabilidad a la información del sitio y los datos que se sirve a los visitantes. De forma predeterminada, el directorio de nivel superior de Apache es / var / www y que se les ponía a los directorios individuales en el directorio / www / var para cada sitio / dominio.

Para cada uno de nuestro sitio, vamos a hacer que los directorios del sitio -

 $ Sudo mkdir -p /var/www/webserver1.com
$ Sudo mkdir -p /var/www/webserver2.com 

Conceder permisos

Ahora, tenemos la estructura de directorios de nuestro sitio / dominio, pero que son creados y son propiedad de nuestro usuario root. Si queremos que nuestro usuario normal para poder modificar archivos en nuestros directorios web, entonces tenemos que cambiar la propiedad a los demás usuarios normales.

 $ Sudo chown -R $ user: El usuario $ /var/www/webserver1.com
$ Sudo chown -R $ user: El usuario $ /var/www/webserver2.com 

También debemos modificar nuestros permisos un poco para asegurarse de que el acceso de lectura está permitido en el directorio web general y todos los archivos y carpetas que contiene por lo que las páginas se pueden servir correctamente:

 $ Sudo chmod -R 755 / var / www 

Su servidor web debe tener los permisos necesarios para servir al sitio, y el usuario debe ser capaz de crear contenido dentro de las carpetas necesarias.

Crear páginas de demostración para cada host virtual

En primer lugar, vamos a comenzar con webserver1.com. Entonces, podemos crear un archivo index.html en nuestro editor, escribiendo:

 $ Toque /var/www/webserver1.com/index.html 

Editar el archivo index.html con una secuencia de comandos HTML simple que indica el sitio que está conectado. <Html>

<Html>

 $ /var/www/webserver1.com/ Nano index.html
<Html>
  <Head>
    <Title> Bienvenido a webserver1.com! </ Title>
  </ Head>
<Body>
   <H1> Éxito! El webserver1.com máquina virtual está funcionando! </ H1>
</ Body>
</ Html> 
 $ Cp /var/www/webserver1.com/index.html /var/www/webserver2.com/index.html 

A continuación, podemos editar el archivo y modificar los elementos pertinentes de información:

 $ /var/www/webserver2.com/public_html/index.html Nano
<Html>
  <Head>
    <Title> Bienvenido a webserver2.com! </ Title>
  </ Head>
  <Body>
    <H1> Éxito! El webserver2.com máquina virtual está funcionando! </ H1>
  </ Body>
</ Html> 

Crear nuevos archivos de hosts virtuales

los archivos de la máquina virtual son los archivos de configuración que especifican el host virtual e instruye al Apache para responder a las diversas solicitudes de dominio.

 $ Sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/webserver1.com.conf
$ Sudo nano /etc/apache2/sites-available/webserver1.com.conf
<VirtualHost *: 80>
     ServerAdmin admin@webserver1.com
     ServerName webserver1.com
     ServerAlias ​​www.webserver1.com
     DocumentRoot /var/www/webserver1.com/public_html
     ErrorLog $ {} APACHE_LOG_DIR /error.log
     CustomLog $ {} APACHE_LOG_DIR /access.log combinado
</ VirtualHost> 

En primer lugar copiar el archivo de hosts virtuales y personalizar para el dominio de segundo webserver2.com

 $ Sudo cp /etc/apache2/sites-available/webserver1.com.conf /etc/apache2/sites-available/webserver2.com.conf
$ Sudo nano /etc/apache2/sites-available/webserver2.com.conf 

Ahora tendrá que modificar todos los elementos de información para hacer referencia a su segundo dominio. Cuando haya terminado, puede ser algo como esto:

 <VirtualHost *: 80>
      ServerAdmin admin@webserver2.com
      ServerName webserver2.com
      ServerAlias ​​www.webserver2.com
      DocumentRoot /var/www/webserver2.com/public_html
      ErrorLog $ {} APACHE_LOG_DIR /error.log
      CustomLog $ {} APACHE_LOG_DIR /access.log combinado
</ VirtualHost> 

Habilitar los archivos de nuevo host virtual

Ahora que ya hemos creado nuestros archivos de la máquina virtual, debemos permitir que estos sitios. Apache tiene sus propias herramientas que nos permiten hacer esto.

 $ Sudo a2ensite webserver1.com.conf
$ Sudo a2ensite webserver2.com.conf 

Teníamos que reiniciar Apache para que los cambios tengan efecto:

 $ Sudo reinicio del servicio apache2
* El reinicio del servidor web apache2
AH00558: apache2: no se pudo determinar con fiabilidad el nombre de dominio completo del servidor, usando 127.0.0.1. 
Establecer la directiva 'ServerName' a nivel mundial para suprimir este mensaje.
Este es un mensaje inofensivo que no afecta a nuestro sitio. 

Prueba de los sitios web

A medida que estos sitios / dominios no son el público por lo que no hay ninguna entrada estará allí para fácil los pasos que necesitamos para editar el archivo / etc / hosts de forma que si navegamos con los nombres de dominio y webserver1.com webserver2.com podemos ver las páginas web

 $ Sudo / etc / hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: 1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.84 website1.com
192.168.1.84 website1.com 

Ahora que ha configurado dos hosts, puede probar la configuración fácilmente abriendo el navegador favorito y abrir los dominios.

 http://webserver1.com

index1

http://webserver2.com

index2

Después de la configuración, debería tener ahora una sola manipulación de dos nombres de dominio / sitios independientes del servidor. Puede ampliar este proceso siguiendo los pasos que hemos esbozado arriba para hacer máquinas virtuales adicionales. No hay límite de software para la configuración de los nombres de dominio Apache no puede manejar cualquiera de los sitios, podemos hacer tantas como sitios / dominios hasta que sus servidores son capaces de manejar ellos.