Ausführen von MacOX Sierra auf MacBook Pro und Einrichten der lokalen Entwicklungsumgebung mit nginx als Webserver, aber ich habe ein Problem.
Was ich machen will; was ich vorhabe zu tun
127.0.0.1
als Host für die Platzhalterdomäne zurückkehrt *.develop
(da .dev jetzt mit ICANN kollidiert).Bedingungen und Einschränkungen
192.168.1.1
, aber mein Arbeits-DHCP gibt meinen DNS als an10.128.x.x
10.128.x.x
ein .search domain
Google or OpenDNS
Ich bin in China, also 127.0.0.1
kann es gut funktionieren, nur ein paar öffentliche DNS-Server einzurichten , aber sie sind international und werden von GFW gedrosselt.Was ich bisher gemacht habe
nginx
und dnsmasq
benutze homebrew
.sudo brew services start xxx
. ) Das ist so, dass ich nginx ausführen kann port 80
und nicht port 8080
.)dnsmasq
Direktive setzenaddress=/.develop/127.0.0.1
dnsmasq
funktioniert, indem ich Folgendes verwende dig
:dig testing.testing.one.two.three.develop @127.0.0.1
; <<>> DiG 9.8.3-P1 <<>> testing.testing.one.two.three.develop @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46013
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;testing.testing.one.two.three.develop. IN A
;; ANSWER SECTION:
testing.testing.one.two.three.develop. 0 IN A 127.0.0.1
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jun 20 12:04:44 2017
;; MSG SIZE rcvd: 71
127.0.0.1
in Network Preferences
funktioniert und ich kann dies 'pingen':Ping-Beispiel:
ping -c 1 this.is.a.test.develop
PING this.is.a.test.develop (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.036 ms
--- this.is.a.test.develop ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.036/0.036/0.036/0.000 ms
aber dann sind keine externen Dienste verfügbar, weil der einzige verfügbare DNS mein dnsmasq at ist127.0.0.1
Das Problem
127.0.0.1
Es scheint, als wäre die einfache Lösung, einfach + 192.168.0.1
zu meiner Netzwerkadapter-DNS-Liste hinzuzufügen . Das funktioniert zu Hause, aber nicht am Firmenstandort10.128.x.x
würde natürlich im Büro funktionieren, aber dann nicht zu HauseSo add both corporate and home DNS to the list?
Dies würde dann alle anderen WLAN-/Ethernet-Verbindungen unterbrechen, weil ich ihren DHCP-DNS-Server nicht abholen würdeIch würde gerne wissen, wie andere ein scheinbar sehr häufiges Setup gelöst haben, aber ich habe Probleme.
Ich habe mir bereits zwei separate Fragen zum Stapelaustausch angesehen, die ähnliche Probleme haben , aber nicht identisch sind . Die Fragen sind am Ende dieser Frage angehängt [1], [2]. Was diese Fragen zeigen, ist, dass unter macOS /etc/resolve.conf
dieser Hinweis vorhanden ist:
in der Kopfzeile
#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
Dies deutet darauf hin, dass keine Änderungen aus dieser Datei gelesen werden, und andere Antworten auf die Fragen deuten darauf hin, dass alle darin enthaltenen Dateien /etc/resolver/*
ebenfalls nicht gelesen werden
Meine eigentliche Frage ist also : Gibt es eine Möglichkeit:
Warum hast du nicht einfach Hosts verwendet?
Denn die Idee, eine *.develop-Domain zu haben und dann einfach eine einzelne Site hinzuzufügen, die reguläre Ausdrücke verwendet, um lokale Sites dynamisch aufzulösen, ist sehr attraktiv!
dh some-sub-domain.develop
->/Users/myuser/www/some-sub-domain/
[1] dnsmasq funktioniert nicht unter Mac OS Sierra
[2] https://serverfault.com/questions/478534/how-is-dns-lookup-configured-for-osx-mountain-lion
Antwort gefunden! Für diejenigen, die dies zum Laufen bringen möchten, insbesondere in MacOS Sierra, funktioniert die Standardlösung der Verwendung einer Resolver-Datei tatsächlich /etc/resolver/*
, ohne dass die Netzwerkeinstellungen geändert werden müssen.
In meinem Fall, in dem ich wollte, dass mein lokaler Entwicklungsdomänenname lautet *.develop
, habe ich eine Datei namens develop
(ohne Erweiterung) mit Inhalt erstellt:
nameserver 127.0.0.1
Ich dachte, das hätte nicht funktioniert und dass macOS diese Dateien nicht liest, da ich den Befehl verwendet habe dscacheutil -flushcache
und es nicht funktioniert hat. Nur ein harter Neustart reichte aus, um das System dazu zu bringen, den lokalen Resolver zu verwenden.
Der Vollständigkeit halber ist der Inhalt meiner dnsmasq.conf-Datei:
no-resolv
address=/.develop/127.0.0.1