Als Webentwickler gerät man schnell in die Problematik das geschriebene Markup auf Tablets, Telefonen, TV Geräten usw. zu prüfen. Ich schreibe eigentlich immer an mehreren Projekten gleichzeitig und löse das durch Subdomains auf localhost. Klappt auch ganz gut, aber spätestens wenn ich in oben genannte Situation komme oder ein Kollege nen Blick von seiner Maschine drauf werfen will wird es schnell doof. Ein Dienst der Aussagen wie „Geh auf http://dev.michael.irgendwas!“ ermöglicht muß her.
In meinem Fall lautet die Lösung dnsmasq – ein im Vergleich zu bind9 sehr einfach zu konfigurierender DNS Dienst.
Dnsmasq löst dev.michael.office bis michael.office auf. Das dev erledigt meine Maschine. Das hat den Vorteil, daß man nicht für jede neue Subdomain und jeden neuen Entwickler die Config anpassen muß.
Zuerst wird im Router ein weiterer DNS Server eingetragen – in einem meiner Fälle ein Raspberry Pi. Auf der Kiste wird nach der Anleitung im Ubuntuusers Wiki dnsmasq installiert.
Die Konfiguration ist wirklich simpel.
Zuerst in der /etc/hosts auf dem dnsmasq server die domains auflösen
#...... #Ip Domainname Machine 192.168.0.105 dns.office this 192.168.0.104 michael.office michael's machine 192.168.0.104 hans.office hans machine |
Um alle Domains die hintendran oder davor hängen (kommt auf die Leserichtung an:-) ) muß noch eine Regel erstellt werden.
Die Konfiguration meiner Kiste auf dem dnsmasq server
pi@funkybert ~ $ cat /etc/dnsmasq.d/thinkpad address=/.thinkpad.home/192.168.0.104 |
Der Rest der Domain wird lokal aufgelöst:
ms@w530 ~ $ cat /etc/hosts #......... 127.0.1.1 dev.michael.office |
Zum Debuggen ist das Tool dig sehr zu empfehlen.
ms@w530 ~ $ dig michael.office |
Zeigt wie die Domain aufgelöst wird.
ms@w530 ~ $ dig michael.office @192.168.0.105 |
Zeigt wie die Domain von dem DNS Sever unter 192.168.0.105 aufgelöst wird.
Aber wenn du doch schon einen DNS Server aufsetzt, warum löst du dann die dns Subdomain doch wieder auf deiner Workstation per /etc/hosts auf?
Das könntest du doch auch per Wildcard im dnsmasq lösen (machst du ja auch schon in der thinkpad Datei vgl. http://stackoverflow.com/a/22551303).
Die Wildcard ist in dnsmaq gesetzt. Ich trage es lokal nochmal für meinen Apache ein.
Kleiner Tippfehler von mir, meinte „dev Subdomain“ nicht „dns Subdomain“.
Ich finds etwas doppelt gemoppelt. Derzeit kannst du ja irgendwas.thinkpad.home anfragen und bekommst immer 192.168.0.104 zurück. Dem Apache ist es ja eigentlich egal, ein namensbasierter vHost tatsächlich auflöst. Der einzige Usecase, den ich hier sehe ist, dass du auch arbeiten kannst, wenn dein DNS mal nicht erreichbar ist (z.B. von unterwegs).
Sorry, das war für mich zu offensichtlich als das ich es in den Post geschrieben hätte. 🙂