in Otros

Entorno de desarrollo para sitio con multiples dominios

Screen Shot 2014-02-28 at 4.01.46 PMActualmente me encuentro trabajando en un site que posee multiples dominios, mas de 20, y los cuales a su vez tienen subdominios, varios cientos por dominio.

Al comenzar el trabajo tenía unos dominios seteados para mi entorno local y otros para dev, todos definidos manualmente por la tabla de hosts de mi sistema.

El tema fué cuando empecé a trabajar en una nueva feature que necesitaba ser testeada en varios, y digo varios, dominios y sub dominios. Lo primero que se me ocurrió fue tratar de ver si la tabla de hosts podía manera expresiones del tipo *.mysitio.com para que pegue con todos los subdominios, de esa manera podía definir *.mysitio.com y *.mysitio.com.uy y testear en todos en esos dos dominios y sus respectivos subdominios. Lamentablemente encontré que nuestra querida tabla de hosts no soporta ningún tipo de expresiones así que tuve que seguir buscando.

En la búsqueda me encuentro con una herramienta que me convenció llamada DNSchef, esta herramienta es un proxy para DNSs, escucha las peticiones de DNS, si encuentra una regla local devuelve la ip que diga la regla sino forwardea la petición a un DNS, por defecto el 8.8.8.8 (el de google). Esta herramienta tiene varias formas de uso, la que mas me gusto es la siguiente.

Bajar la aplicación (requiere python, disponible para linux, mac y windows) y Descomprimiarla (tar zxvf dnschef-0.2.1.tar.gz).

Entrar al directorio de la herramienta y crear un archivo ini con las reglas de DNS a modificar. Estas fueron las mías

[A]
*.mysitio.com.ar=127.0.0.1
*.mysitio.com.br=127.0.0.1
*.mysitio.com.uy=22.22.22.22

Donde, 22.22.22.22 sería la dirección del servidor de Dev para pruebas en Dev, y 127.0.0.1 es mi local.

Para levantar el proxy deben correr este comando

sudo python dnschef.py --file mireglas.ini -q
[*] DNSChef started on interface: 127.0.0.1
[*] Using the following nameservers: 8.8.8.8
[+] Cooking A replies for domain *.mysitio.com.ar with '127.0.0.1'
[+] Cooking A replies for domain *.mysitio.com.br with '127.0.0.1'
[+] Cooking A replies for domain *.mysitio.com.uy with '22.22.22.22'

El último paso es ir a Networks, Intefaces, DNSs (o en /etc/resolv.conf) y buscar donde cambiar el dns de su conexión para que use 127.0.0.1 como servidor de DNS.

Y listo, con eso su browser al usar cualquiercosa.mysitio.com.ar va intentar acceder a 127.0.0.1.

Para mas info visiten el sitio de DNSChef

https://thesprawl.org/projects/dnschef/

Por si me preguntan, NO, creo que no tiene ninguna relación con Chef.

Write a Comment

Comment

*