¿Cómo apuntar 2 dominios diferentes a 1 dirección IP (Apache)?

11

Tengo dos nombres de dominio diferentes, que quiero alojar en el mismo alojamiento privado que tengo. Quiero que apunten a la misma dirección IP y, sin embargo, tengan contenido diferente (por supuesto). ¿Cómo puedo hacer eso? ¿Hay diferentes formas de hacer esto? En ese caso, cuál es la mejor manera. Gracias.

Nima
fuente

Respuestas:

14

Apache2 admite servir diferentes contenidos según los nombres de dominio, incluso si todos esos dominios se resuelven en la misma dirección IP. Cada uno de los nombres de dominio es manejado por un host virtual , por lo tanto, el host virtual basado en el nombre del nombre .

Aquí hay una configuración de muestra para dos dominios:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>

<VirtualHost *:80>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

Encontrará la documentación oficial sobre soporte de host virtual basado en nombre aquí .

Sin embargo, tenga en cuenta que esto solo funcionará con conexiones HTTP simples, no con HTTPS (HTTP sobre SSL): los hosts virtuales basados ​​en nombres dependen de saber qué nombre se solicita, pero Apache no puede conocer esta información hasta que el SSL encriptado Se establece la conexión.

Si necesita que su configuración funcione también con HTTPS, debe confiar en una extensión del protocolo SSL llamada Indicación de nombre del servidor (SNI) ( RFC4366 ). Básicamente, los clientes habilitados para SNI (por ejemplo: navegadores web) agregan información de texto sin formato adicional al establecer la conexión SSL cifrada, lo que permite al servidor saber el nombre que se solicita antes de que la conexión SSL esté lista.

Todos los navegadores aún no son compatibles con SNI. Al momento de escribir y de acuerdo con Wikipedia, estos hacen:

  • Internet Explorer 7 o posterior, en Windows Vista o superior (no funciona en XP, incluso IE 8)
  • Mozilla Firefox 2.0 o posterior
  • Opera 8.0 o posterior (el protocolo TLS 1.1 debe estar habilitado)
  • Opera Mobile al menos versión 10.1 beta en Android
  • Google Chrome (Vista o superior, XP en Chrome 6 o posterior, OS X 10.5.7 o posterior en Chrome 5.0.342.1 o posterior)
  • Safari 2.1 o posterior (Mac OS X 10.5.6 o superior y Windows Vista o superior)
  • Konqueror / KDE 4.7 o posterior
  • MobileSafari en Apple iOS 4.0 o posterior
  • Navegador predeterminado de Android en Honeycomb (v3.x) o posterior
  • Windows Phone 7
  • MicroB en Maemo

Hospedar varios hosts virtuales basados ​​en nombres accesibles a través de HTTPS requiere que habilite mod_ssl y agregue una configuración similar a la del ejemplo anterior:

Listen 443      
NameVirtualHost *:443

# Accept connections for these vhosts from non-SNI clients
# Clients without SNI will be handled by the first defined vhost.
# If you only want SNI-enabled client, put on instead
SSLStrictSNIVHostCheck off

<VirtualHost *:443>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/    
</VirtualHost>

<VirtualHost *:443>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

Recuerde que usar SSL requiere que compre certificados SSL para sus dominios, o que genere algunos autofirmados, y que configure Apache para usarlos para conexiones SSL.

p_piotr3k
fuente
¿Puedes decir el nombre y la ruta del archivo de configuración apache2?
João Pimentel Ferreira
no olvide reiniciar apache después de los cambiossudo service apache2 restart
João Pimentel Ferreira