Apache es gratuito, de código abierto y el servidor web más utilizado en todo el mundo. No solo es conocido por su potencia, sino también por sus múltiples componentes con funciones específicas. Apache Virtual Host es uno de esos componentes; nos permite alojar múltiples sitios web en un solo servidor.
Si tiene un gran servidor con amplios recursos, como mucho espacio en el disco duro, RAM y potencia de la CPU, puede alojar varios sitios web utilizando el alojamiento virtual. Puede alojar una cantidad ilimitada de sitios web en su servidor web Apache. Asegúrese de que su servidor tenga suficientes recursos para manejar los requisitos de tráfico y espacio en disco. Uno de los mejores ejemplos es un proveedor de alojamiento web que utiliza alojamiento virtual para alojar cientos y miles de sitios web en un solo servidor.
Hay tres formas de alojar varios sitios web en un solo servidor:
- Alojamiento virtual basado en nombres.
- Alojamiento virtual basado en IP.
- Alojamiento virtual basado en puerto.
En este tutorial, explicaremos el proceso para alojar dos sitios web en un solo servidor de tres maneras diferentes.
Requisitos
- Un Ubuntu 18.04 VPS nuevo en Atlantic.Net Cloud Platform.
- Dos nombres de dominio o nombres de subdominio válidos apuntan a su dirección IP de VPS. En este tutorial, usaremos site1.example.com y site2.example.com como subdominios.
- Dos direcciones IP estáticas, 192.168.0.101 y 192.168.0.102, configuradas en su VPS.
Paso 1:crear un servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:instalar el servidor web Apache
Primero, instale el servidor web Apache ejecutando el siguiente comando:
apt-get install apache2 -y
Una vez completada la instalación, inicie el servicio Apache con el siguiente comando:
systemctl start apache2
Alojamiento virtual basado en nombres
El alojamiento virtual basado en nombres es el método más utilizado para alojar varios sitios web en la misma dirección IP y puerto. Necesitará nombres de dominio válidos para hospedar varios sitios web mediante hospedaje virtual basado en nombres.
En esta sección, usaremos site1.example.com y site2.example.com para alojar dos sitios web en un solo servidor.
Paso 3:crear una estructura de directorio
Primero, cree un directorio raíz de documentos para ambos sitios web:
mkdir /var/www/html/site1.example.com mkdir /var/www/html/site2.example.com
A continuación, cree un index.html página para ambos sitios web.
Primero, crea un index.html página para sitio1.ejemplo.com :
nano /var/www/html/site1.example.com/index.html
Agregue las siguientes líneas:
<html> <title>site1.example.com</title> <h1>Welcome to site1.example.com Website</h1> <p>This is my first website hosted with name-based virtual hosting</p> </html>
A continuación, cree un index.html página para site2.example.com :
nano /var/www/html/site2.example.com/index.html
Agregue las siguientes líneas:
<html> <title>site2.example.com</title> <h1>Welcome to site2.example.com Website</h1> <p>This is my second website hosted with name-based virtual hosting</p> </html>
A continuación, cambie la propiedad de site1.example.com y sitio2.ejemplo.com directorio a www-data :
chown -R www-data:www-data /var/www/html/site1.example.com chown -R www-data:www-data /var/www/html/site2.example.com
Paso 4:crear un archivo de configuración de host virtual
A continuación, deberá crear un archivo de configuración de host virtual de Apache para servir a ambos sitios web.
Primero, cree un archivo de configuración de host virtual de Apache para site1.example.com :
nano /etc/apache2/sites-available/site1.example.com.conf
Agregue las siguientes líneas:
<VirtualHost *:80> ServerAdmin [email protected] ServerName site1.example.com DocumentRoot /var/www/html/site1.example.com DirectoryIndex index.html ErrorLog ${APACHE_LOG_DIR}/site1.example.com_error.log CustomLog ${APACHE_LOG_DIR}/site1.example.com_access.log combined </VirtualHost>
Guarde y cierre el archivo.
A continuación, cree un archivo de configuración de host virtual de Apache para site2.example.com :
nano /etc/apache2/sites-available/site2.example.com.conf
Agregue las siguientes líneas:
<VirtualHost *:80> ServerAdmin [email protected] ServerName site2.example.com DocumentRoot /var/www/html/site2.example.com DirectoryIndex index.html ErrorLog ${APACHE_LOG_DIR}/site2.example.com_error.log CustomLog ${APACHE_LOG_DIR}/site2.example.com_access.log combined </VirtualHost>
Guarde y cierre el archivo. Luego, habilite el archivo de configuración del host virtual con los siguientes comandos:
a2ensite site1.example.com a2ensite site2.example.com
A continuación, reinicie el servidor web Apache para aplicar los cambios de configuración:
systemctl restart apache2
Paso 5:probar ambos sitios web
En este punto, ha configurado el servidor web Apache para servir a dos sitios web.
Ahora, abra su navegador web y escriba la URL http://site1.example.com. Debería ver su primer sitio web en la siguiente pantalla:
A continuación, abra su navegador web y escriba la URL http://site2.example.com. Debería ver su segundo sitio web en la siguiente pantalla:
Alojamiento virtual basado en IP
El alojamiento virtual basado en IP es un método para servir diferentes sitios web según la dirección IP. Puede asignar una dirección IP separada para cada sitio web en un solo servidor.
En esta sección, utilizaremos las direcciones IP 192.168.0.101 y 192.168.0.102 para alojar dos sitios web en un solo servidor.
Paso 3:crear una estructura de directorio
Primero, cree un directorio raíz de documentos para ambos sitios web:
mkdir /var/www/html/192.168.0.101 mkdir /var/www/html/192.168.0.102
A continuación, cree un index.html página para ambos sitios web.
Primero, crea un index.html página del sitio web alojado en 192.168.0.101 :
nano /var/www/html/192.168.0.101/index.html
Agregue las siguientes líneas:
<html> <title>192.168.0.101</title> <h1>Welcome to 192.168.0.101 Website</h1> <p>This is my first website hosted with IP-based virtual hosting</p> </html>
Guarde y cierre el archivo.
A continuación, cree un index.html página del sitio web alojado en 192.168.0.102 :
nano /var/www/html/192.168.0.102/index.html
Agregue las siguientes líneas:
<html> <title>192.168.0.102</title> <h1>Welcome to 192.168.0.102 Website</h1> <p>This is my first website hosted with IP-based virtual hosting</p> </html>
Guarde y cierre el archivo.
A continuación, cambie la propiedad de ambos sitios web a www-data:
chown -R www-data:www-data /var/www/html/192.168.0.101 chown -R www-data:www-data /var/www/html/192.168.0.102
Paso 4:crear un archivo de configuración de host virtual
A continuación, deberá crear un archivo de configuración de host virtual de Apache para servir a ambos sitios web.
Primero, cree un archivo de configuración de host virtual de Apache para el sitio web alojado en 192.168.0.101:
nano /etc/apache2/sites-available/192.168.0.101.conf
Agregue las siguientes líneas:
<VirtualHost *:80> ServerAdmin [email protected] ServerName 192.168.0.101 DocumentRoot /var/www/html/192.168.0.101 DirectoryIndex index.html ErrorLog ${APACHE_LOG_DIR}/192.168.0.101_error.log CustomLog ${APACHE_LOG_DIR}/192.168.0.101_access.log combined </VirtualHost>
Guarde y cierre el archivo.
A continuación, cree un archivo de configuración de host virtual de Apache para el sitio web alojado en 192.168.0.102:
nano /etc/apache2/sites-available/192.168.0.102.conf
Agregue las siguientes líneas:
<VirtualHost *:80> ServerAdmin [email protected] ServerName 192.168.0.102 DocumentRoot /var/www/html/192.168.0.102 DirectoryIndex index.html ErrorLog ${APACHE_LOG_DIR}/192.168.0.102_error.log CustomLog ${APACHE_LOG_DIR}/192.168.0.102_access.log combined </VirtualHost>
Guarde y cierre el archivo. Luego habilite el host virtual con el siguiente comando:
a2ensite 192.168.0.101 a2ensite 192.168.0.102
Finalmente, reinicie el servidor web Apache para aplicar los cambios:
systemctl restart apache2
Paso 5:probar ambos sitios web
En este punto, ha configurado el servidor web Apache para servir a dos sitios web.
Ahora, abra su navegador web y escriba la URL http://192.168.0.101. Debería ver su primer sitio web en la siguiente pantalla:
A continuación, abra su navegador web y escriba la URL http://192.168.0.102. Debería ver su segundo sitio web en la siguiente pantalla:
Alojamiento virtual basado en puertos
El alojamiento virtual basado en puertos es un método para servir diferentes sitios web según el número de puerto. Puede asignar un número de puerto separado para cada sitio web en un solo servidor con una sola dirección IP.
En esta sección, utilizaremos los puertos numerados 8080 y 8081 para alojar dos sitios web en un solo servidor con la dirección IP 192.168.0.101.
Paso 3:configurar Apache para escuchar en los puertos 8080 y 8081
Primero, deberá configurar el servidor web Apache para escuchar en el puerto 8080 y 8081 . Puedes hacerlo editando el archivo /etc/apache2/ports.conf :
nano /etc/apache2/ports.conf
Agregue las siguientes líneas exactamente debajo de la línea Escuchar 80 :
Listen 8080 Listen 8081
Guarde y cierre el archivo cuando haya terminado.
Paso 4:crear una estructura de directorio
Primero, cree un directorio raíz de documentos para ambos sitios web:
mkdir /var/www/html/8080 mkdir /var/www/html/8081
A continuación, cree un index.html página para ambos sitios web.
Primero, crea un index.html página del sitio web alojado en el puerto 8080 :
nano /var/www/html/8080/index.html
Agregue las siguientes líneas:
<html> <title>8080</title> <h1>Welcome to 8080 Website</h1> <p>This is my first website hosted with Port-based virtual hosting</p> </html>
Guarde y cierre el archivo.
A continuación, cree un index.html página del sitio web alojado en el puerto 8081 :
nano /var/www/html/8081/index.html
Agregue las siguientes líneas:
<html> <title>8081</title> <h1>Welcome to 8081 Website</h1> <p>This is my first website hosted with Port-based virtual hosting</p> </html>
Guarde y cierre el archivo.
A continuación, cambie la propiedad de ambos sitios web a www-data:
chown -R www-data:www-data /var/www/html/8080 chown -R www-data:www-data /var/www/html/8081
Paso 5:crear un archivo de configuración de host virtual
A continuación, deberá crear un archivo de configuración de host virtual de Apache para servir a ambos sitios web.
Primero, cree un archivo de configuración de host virtual de Apache para el sitio web alojado en el puerto 8080 :
nano /etc/apache2/sites-available/8080.conf
Agregue las siguientes líneas:
<VirtualHost 192.168.0.101:8080> ServerAdmin [email protected] ServerName 192.168.0.101 DocumentRoot /var/www/html/8080 DirectoryIndex index.html ErrorLog ${APACHE_LOG_DIR}/8080_error.log CustomLog ${APACHE_LOG_DIR}/8080_access.log combined </VirtualHost>
Guarde y cierre el archivo.
A continuación, cree un archivo de configuración de host virtual de Apache para el sitio web alojado en el puerto 8081. :
nano /etc/apache2/sites-available/8081.conf
Agregue las siguientes líneas:
<VirtualHost 192.168.0.101:8081> ServerAdmin [email protected] ServerName 192.168.0.101 DocumentRoot /var/www/html/8081 DirectoryIndex index.html ErrorLog ${APACHE_LOG_DIR}/8081_error.log CustomLog ${APACHE_LOG_DIR}/8081_access.log combined </VirtualHost>
Guarde y cierre el archivo. Luego, habilite el host virtual con el siguiente comando:
a2ensite 8080 a2ensite 8081
Finalmente, reinicie el servidor web Apache para aplicar los cambios:
systemctl restart apache2
Paso 6:probar ambos sitios web
En este punto, ha configurado el servidor web Apache para servir a dos sitios web.
Ahora, abra su navegador web y escriba la URL http://192.168.0.101:8080. Debería ver su primer sitio web en la siguiente pantalla:
A continuación, abra su navegador web y escriba la URL http://192.168.0.101:8081. Debería ver su segundo sitio web en la siguiente pantalla:
Conclusión
¡Felicidades! Ha alojado con éxito dos sitios web en un solo servidor de tres maneras diferentes. Ahora puede alojar fácilmente más sitios web con el método de alojamiento virtual de Apache. Si está listo para comenzar a configurar varios sitios web en un Apache VPS, consulte las opciones de alojamiento de VPS de Atlantic.Net.