En las dos entregas anteriores hemos estudiado qué son las Plataformas como Servicio o PaaS, en qué consiste el PaaS de Azure y sus ventajas e inconvenientes, y hemos creado nuestra primera Web App real en Azure, la hemos configurado y la hemos puesto en marcha.

En la entrega de hoy vamos a ver cómo poner a andar el servicio con su propio dominio asignado.

Allá vamos.

Asignación de dominios

Una vez que tenemos nuestra aplicación funcionando sin problemas en el dominio por defecto que nos otorga Azure Web Apps, es hora de pasarlo a producción y empezar a utilizar el dominio definitivo. Ya veremos que es un proceso que, aunque sencillo, no está exento de problemas.

Para conseguirlo debemos acudir al apartado Custom Domains de las herramientas de la Web App, en el lateral. Al acceder a este apartado se nos mostrará la dirección IP que nos han asignado para que la aplicación se vea desde el exterior, y una lista con los dominios actualmente asociados a la misma (en este momento solo el predeterminado). Tenemos la opción de añadirlo usando el botón con un + que tenemos encima de la lista:

Añadir dominio propio en Azure Web App

Por regla general vamos a querer que nuestra aplicación o sitio web responda al menos a dos dominios: el de nivel superior y el subdominio www, ya que casi todo el mundo utiliza este último por tradición.

Nota: de cara a mejorar el posicionamiento SEO (Search Engine Optimization) y que el dominio se posicione bien, es importante que los rastreadores de los buscadores vean un único dominio y no estos dos. Existen otros modos de conseguirlo (por ejemplo con cabeceras de URL canónica), pero lo habitual es que uno de ellas prevalezca sobre el otro y pongamos una redirección permanente. Esto se puede conseguir mediante configuración del servidor web o que lo haga la propia aplicación. En el caso de mi blog, la propia aplicación tiene un ajuste para ello como vimos en el artículo anterior, y siempre te lleva al subdominio con la www.

Al pulsar en el + debemos introducir el nombre del dominio o subdominio que queremos añadir, como se ve en la captura anterior, y acto seguido pulsamos el botón de validar.

La validación se debe hacer de una de dos maneras, indicadas en la propia pantalla, pero ambas pasan por tocar el servidor DNS del dominio.

Opción 1: Entradas DNS de tipo "A" y "TXT"

La primera de ellas es mediante el uso de una entrada de tipo "A", de las que apuntan a una IP directamente, en el servidor DNS:

Opción 1 de validación del dominio

Es decir, se trata de ir a la configuración del servidor DNS para tu dominio y cambiar la entrada de tipo "A" para que pase a apuntar a la nueva IP que te asigna Azure. Además es necesario introducir una entrada de tipo "TXT" con el nombre de dominio por defecto que tengas asociado en la Web App (en mi caso jasoft.azurewebsites.net como ya hemos visto anteriormente).

Opción 2: Entrada DNS de tipo "CNAME"

La otra opción, más sencilla, consiste en añadir una entrada de tipo "CNAME" que apunte al dominio por defecto que tienes asignado:

Opción 2 de validación del dominio

Cambiando las entradas DNS

Sea cual sea la opción que elijas, la modificación de estas entradas DNS se hará de manera similar, aunque dependerá de las facilidades que proporcione tu proveedor de dominios.

Lo más habitual es que el que te vendió el dominio (GoDaddy, Arsys, One2One...) te ofrezca una sencilla interfaz para crear entradas, editarlas y eliminarlas.

Nota: la propia Microsoft te vende directamente el dominio en Azure si no tienes uno, desde el mismo apartado (abajo) y aun precio bastante competitivo:

Comprar dominio en Azure

Por ejemplo, en Arsys (que es donde los suelo comprar yo) puedes ir al panel de control desde el área de cliente y en la opción de Web > Entradas DNS tienes un listado de lo más sencillo en el que puedes añadir, eliminar y editar las entradas (aquí estoy editando):

editando entrada DNS en Arsys

En el caso del ejemplo que estoy utilizando, mi blog en JASoft.org, el servidor de DNS lo gestiona CloudFlare. En el caso de CloudFlare es incluso más fácil pues puedes editar el listado directamente con solo pulsar.

MUY IMPORTANTE: Si utilizas CloudFlare para gestionar las DNS de tu dominio, debes deshabilitar durante un rato la función de proxy de este servicio. Es decir, debes evitar que CloudFlare esté situado entre Internet y tu servidor. El motivo es que si está actuando de proxy (la manera normal), la entrada DNS se resuelve a una IP de Cloudflare (que es el que a su vez se conecta a tu servidor), pero no devuelve la IP real del servidor (de Azure en este caso). Debido a ello, cuando Azure intente hacer la comprobación no lo conseguirá.

Por lo tanto lo que tienes que hacer es, aparte de cambiar la IP, deshabilitar el proxy pulsando el botón de la nube naranja que tienes a la derecha en el listado:

Editar entrada DNS en Cloudflare y deshabilitar el proxy

En la figura anterior vemos como he configurado con la opción 1, o sea, la entrada "TXT" apuntando al dominio por defecto y la "A" apuntando a la IP que me ha dado Azure. Podría haber hecho como ejemplo la segunda opción, que implicaría una única entrada DNS. Si lo haces así y ya tenías una entrada "A" para el mismo dominio o subdominio, no te olvides de eliminarla antes

Una vez hechos los cambios hay que volver a la pantalla de Azure y pulsar en el botón de Validar en la parte superior.

Ten en cuenta que aunque el cambio de DNS es instantáneo, su replicación a lo largo de Internet puede llevar varias horas. Es posible que en ese ínterin la web deje de funcionar par algunos usuarios si ya la tenías albergada en otro lado. De todos modos, en mi experiencia el proceso es rapidísmo y si tu Web App y tu servidor de DNS están más o menos próximos geográficamente, el cambio es casi inmediato. Un buen consejo (sacado más de mi intuición que de una constatación real) sería que no le des a Validar ninguna vez, hasta que haya creado/editado las entradas en el servidor DNS. Así evitas que se cacheen y que tenga que pasar un rato antes de que Azure invalide esa caché.

Otra cosa importante a tener en cuenta es que el listado de dominios asociados a tu Web App en Azure puede tardar bastante rato en reflejar que el nuevo dominio ya está añadido, incluso aunque ya lo este y esté funcionando perfectamente. Yo creo que es un fallo. Mi recomendación es que, si pulsas en Validar y te dice que está todo bien, refresques la página del portal de Azure con F5 para ver si se actualiza el listado "a las bravas". Si aún sí sigue sin aparecer, no te preocupes: una vez validado ya estará funcionando y no tendrás problema. ya te aparecerá un poco más tarde.

Si usas Cloudflare no te olvides de volver a activar el proxy de nuevo en cuanto hayas validado el dominio en Azure. Si no lo haces dejarás de sacarle partido a los servicios de caché, protección, etc.. que te proporciona CloudFlare.

Con esto tu aplicación ya está totalmente integrada en Azure y funcionando en real.

Puede ser interesante que para distinguir la app que funciona en Azure de la que tenías en otro servidor anterior, le pusieses algo en el código diferente al servidor original (por ejemplo un comentario adicional en el HTML, visible solo en el código fuente de la página principal). Así podrás comprobar que realmente las peticiones están llegando desde Azure.

Espera un par de días para asegurarte de que las DNS se han propagado a todo el mundo y si quieres elimina la app del anterior servidor en el que la tuvieses (si usas Cloudflare, en cuanto lo actives de nuevo para el dominio ya puedes tener la seguridad de que está funcionando contra Azure, ya que el DNS resolverá a Cloudflare y las peticiones a Azure las hará Cloudflare).

En resumen

Hemos visto cómo poner a andar el servicio con uno o más dominios propios. Para dejarlo totalmente listo, lo único que nos queda es asociarle certificados digitales para poder habilitar las comunicaciones seguras, lo cual es algo casi indispensable en la actualidad.

Como esto es un tema que tiene bastante que desarrollar, lo dejamos para el siguiente post, que publicaré mañana o pasado.

¡Hasta pronto!

Si te interesa este tema, he publicado un eBook gratuito titulado "Guía Práctica - Azure Web Apps". Puedes descargarlo desde el enlace anterior.

Escrito por un humano, no por una IA