apache - httpd - Cómo configurar subdominios como blogspot
crear subdominio digitalocean (5)
Qué debería hacer para configurar un subdominio para los usuarios cuando se registran en mi sitio.
¿Cuál es la infraestructura requerida? Estoy usando servidores Linux.
Puede usar una entrada DNS ( CNAME
o A
/ AAAA
) específica para cada subdominio conocido, o una entrada DNS wild-card que aceptará * .example.com:
$ORIGIN example.com
foo IN A 12.34.6.78
bar IN A 12.34.6.78
o
$ORIGIN example.com
* IN A 12.34.6.78
La ventaja de este último es que no se requieren cambios en la configuración de DNS o Apache una vez que se está ejecutando el servicio. La desventaja es que todas las búsquedas de comodines deben (por definición) terminar devolviendo la misma dirección IP.
La configuración de Apache dependerá de sus requisitos, tanto para el control como para la seguridad del usuario final. Tenga en cuenta que si los usuarios tienen permiso para ejecutar scripts CGI en el servidor, será necesaria una configuración adicional para garantizar que se haga de forma segura.
Dependiendo de si el contenido es estático o dinámico, esto también afectará su configuración:
Use
mod_vhost_alias
para asignar hosts virtuales individuales a sus directorios individuales en el servidor.Si realmente lo desea, cree una sección separada de
<VirtualHost>
para cada sitio conocido, pero luego tendrá que reiniciar Apache cada vez que un nuevo usuario se registre.Use un solo
<VirtualHost>
y luego observe la parte de nombre de host de la URL solicitada (desde la variable de entorno$SERVER_NAME
) en los scripts que procesan el resultado para determinar qué contenido del usuario se mostrará.
La infraestructura incluye el acceso al servidor DNS para agregar una entrada de comodín y reescribir las reglas en Apache.
Pruebe estas respuestas:
- ¿Cómo permitir que PHP cree subdominio automáticamente para cada usuario?
- Cómo hacer cuentas de usuario de subdominio en una aplicación web
o este enlace:
Puede hacer una entrada CNAME / A Record en su configuración DNS, para cada subdominio
Un registro CNAME es un registro en su Configuración de administración de dominio que le permite controlar un subdominio de su dominio.
Para automatizarlo junto con el registro, puede escribir un script que se ejecuta para cada usuario, cuando se registra.
También puede consultar este enlace para obtener un proceso paso a paso para Apache:
Cómo configurar subdominios en apache
(ya que mencionas Linux, supongo que debe ser APache. Mencione si es diferente)
Solución Alternativa
También puede consultar la solución comodín, dada por Alnitak , en el mismo hilo. Encuentro que es una manera más fácil. :)
Apache le permite especificar cualquier número de ''sitios'' basados en subdominios en un solo servidor. La creación de un nuevo archivo de ''definición de sitio'' con la información de subdominio apropiada en él, junto con los comodines de DNS adecuados, hará lo que usted desee.
En otras palabras, el proceso es así:
- Configure comodines para que * .mysite.com dirija al servidor adecuado.
- Cuando un nuevo usuario se registra, crea el archivo de definición de sitio de Apache adecuado; probablemente tendrás una plantilla base en la que colocarás la información correcta del subdominio y la guardarás.
- Haz que Apache vuelva a leer su configuración.
- Lucro.
IMPORTANTE Esto se basa en una configuración de Apache de estilo Debian, donde los archivos de configuración se incluyen en un directorio, y la configuración principal lee todos los archivos de configuración en ese directorio. Esto simplificará mucho las cosas, porque añadir / eliminar subdominios significará agregar / eliminar archivos, en lugar de editar un solo archivo, por lo que el proceso será mucho más fácil de automatizar.
Si estás usando servidores Linux estoy asumiendo que estás usando Apache como tu servidor web.
Tendrá que configurar el enrutamiento DNS adecuado para el subdominio así como también para un host virtual.
Los hosts virtuales son bastante fáciles de instalar, pero no estoy seguro de lo fácil que es hacerlos sobre la marcha de manera progmática.
La mayoría de las veces es tan fácil como editar su archivo de configuración de Apache y agregar lo siguiente:
Port 80
ServerName www.mydomain.com
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/user-bob
ServerName bob.mydomain.com
...
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/user-sally
ServerName sally.mydomain.com
...
</VirtualHost>
La Documentación VirtualHost probablemente sea de alguna utilidad para usted.