Queremos tener dos sitios web en el mismo servidor físico.
Sistema operativo: Ubuntu Server 16.04
Servidor web: Apache2

Tenemos dos dominios. En este ejemplo estos dos dominios diferentes los proporciona la empresa DynDNS.

ejemplo1.dyndns.org y ejemplo2.dyndns.org

Redirigiremos los puertos para https 81 y 82 configurando el NAT en el router a la IP fija local del Servidor de nuestro domicilio.
Se configura en el router abriendo puertos en la sección NAT.

Usamos el editor de ficheros «nano» que viene incluido en Ubuntu Server

Creamos los directorios de cada sitio web:

sudo mkdir -p /var/www/html/ejempo1.dyndns.org
sudo mkdir -p /var/www/html/ejempo2.dyndns.org

Damos los permisos. Sin esto no funcionaria:

sudo chown -R www-data:www-data /var/www/html/ejempo1.dyndns.org
sudo chmod -R 755 /var/www/html/ejempo1.dyndns.org

sudo chown -R www-data:www-data /var/www/html/ejempo2.dyndns.org
sudo chmod -R 755 /var/www/html/ejempo2.dyndns.org

En los anteriores directorios incluimos los ficheros del sitio web.

Comentar todo su contenido. No lo vamos a usar:

 

cd /etc/apache2/sites-available
sudo nano 000-default.conf

Editamos:

sudo nano ejempo1.dyndns.org.conf

Listen 81

<VirtualHost *:81>

ServerName ejempo1.dyndns.org
ServerAlias *.ejempo1.dyndns.org
ServerAdmin nombre@gmail.com
DocumentRoot /var/www/html/ejempo1.dyndns.org
DirectoryIndex index.php index.html

<Directory /var/www/html/ejempo1.dyndns.org/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Editamos el otro fichero de configuración del otro dominio:

sudo nano ejempo2.dyndns.org.conf

Listen 82

<VirtualHost *:82>

ServerName ejempo2.dyndns.org
ServerAlias *.ejempo2.dyndns.org
ServerAdmin nombre@gmail.com
DocumentRoot /var/www/html/ejempo2.dyndns.org
DirectoryIndex index.html

<Directory /var/www/html/ejempo2.dyndns.org/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

En el terminal:

sudo a2ensite ejempo1.dyndns.org.conf
sudo a2ensite ejempo2.dyndns.org.conf

Reiniciamos apache2 para que se activen los cambios que hemos hecho:

sudo service apache2 restart

Si hay problemas podemos ver el fichero log de apache2 que nos dará pistas:

cat /var/log/apache2/error.log

En este ejemplo he usado los puertos 81 y 82 para HTTP. Entonces es obligatorio abrir puertos en el router [«port forwarding»]

 

Instalamos el programa ddclient si tenemos una IP dinámica con el servicio DynDNS que se encarga de que nuestros dominios apunten a la IP que nos proporcione el proveedor de la conexión a Internet, si tenemos un a IP dinámica en vez de fija.

sudo apt-get install ddclient
sudo nano /etc/ddclient.conf

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

protocol=dyndns2
use=web, web=checkip.dyndns.com, web-skip=’IP Address’
server=members.dyndns.org
login=nombre_usuario_registrado_en_cuenta_DynDNS
password=’******’
ejemplo1.dyndns.org,ejemplo2.dyndns.org
#daemon=ejemplo 600= 6 minutos
daemon=600
#fin fichero

En terminal:

sudo /etc/init.d/ddclient restart
sudo /etc/init.d/ddclient status

Ahora comprobamos las siguientes direcciones con el navegador:

 

https://ejempo1.dyndns.org.conf
https://ejempo2.dyndns.org.conf

 

¡Y hecho!

 

En este ejemplo he usado los puertos 81 y 82 para HTTP. Entonces es obligatorio abrir puertos en el router [«port forwarding»].

Fuente con mis propias modificaciones aquí