subdominio servidor redireccionar podido otro otra encontrar dominio dirección crear configurar bloquear apuntar apuntando apache subdomain vhosts

apache - servidor - redireccionar subdominio a ip cpanel



Apache múltiples subdominios con una dirección IP (1)

Probablemente se ha preguntado esto, pero no puedo encontrar una respuesta directa, o las que encontré no funcionan.

Tengo un dominio mydomain.com , resolviendo una IP; llamémoslo 8.8.8.8. La configuración de DNS también señala dos subdominios a esa dirección IP con un registro A. Estos son dev.mydomain.com y staging.mydomain.com . Ambos tienen un récord que apunta a 8.8.8.8.

En el servidor (8.8.8.8) tengo dos archivos de hosts virtuales. Estos son los siguientes:

staging.mydomain.com.conf

<VirtualHost *:80> ServerName staging.mydomain.com DocumentRoot /var/www/html/mydomain.com/staging/ </VirtualHost>

Y...

dev.mydomain.com.conf

<VirtualHost *:80> ServerName dev.mydomain.com DocumentRoot /var/www/html/mydomain.com/dev/ </VirtualHost>

El problema es:

Independientemente de si visito http://staging.mydomain.com o http://dev.mydomain.com , siempre aterrizo en staging.mydomain.com (Apache sirve estos archivos).

He reiniciado Apache e incluso el servidor. Si cambio el orden de los archivos .conf para que dev sea el primero, siempre lo veo. Cualquier sugerencia sería muy apreciada. ¡Gracias!

actualizar

Me encuentro de nuevo en este problema de nuevo! Si sabe que su sintaxis es correcta, es posible que tenga un enlace simbólico defectuoso. Bórrelo y vuelva a crearlo, reiniciando Apache en el medio. Solo hice esto y resolví horas de rascarme la cabeza. En CentOS puede verificar sus vhosts disponibles con httpd -S

actualización 2

También encontré que este problema existe cuando los archivos de registro de apache para el host virtual no existen, o no se pueden escribir.


Parece que necesita agregar la directiva NameVirtualHost a su configuración.

NameVirtualHost *:80

En algunas circunstancias, es posible que Apache no pueda manejar *:80 VirtualHosts correctamente. En esos casos, debe asignar VirtualHosts directamente en direcciones IP específicas.

NameVirtualHost 8.8.8.8:80 <VirtualHost 8.8.8.8:80> ServerName staging.mydomain.com ServerAlias stage.mydomain.com DocumentRoot /var/www/html/mydomain.com/staging/ </VirtualHost> <VirtualHost 8.8.8.8:80> ServerName dev.mydomain.com ServerAlias development.mydomain.com DocumentRoot /var/www/html/mydomain.com/dev/ </VirtualHost>

También puede ejecutar apachectl -t -D DUMP_VHOSTS para ver cómo Apache analiza la configuración de VirtualHost.

Actualización: Como se mencionó en los comentarios, por lo general, solo puede usar NameVirtualHost *:80 . Así que la mayoría de las veces puede configurar los hosts virtuales de la siguiente manera.

NameVirtualHost *:80 <VirtualHost *:80> ServerName staging.mydomain.com ServerAlias stage.mydomain.com DocumentRoot /var/www/html/mydomain.com/staging/ </VirtualHost> <VirtualHost *:80> ServerName dev.mydomain.com ServerAlias development.mydomain.com DocumentRoot /var/www/html/mydomain.com/dev/ </VirtualHost>