// EDIT: es ist mein lokaler Entwicklungsserver
Ich habe einen integrierten PHP-Server, der auf Port 8000 für den Host läuft . Ich möchte, dass Nginx von Port 80 auf Port 8000 somehost.dev
proxyt . Meine Konfiguration:somehost.dev
server {
listen 80;
server_name *.dev;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://$host:8000$uri;
proxy_redirect off;
}
}
Fehlermeldung:
[error] 30106#0: *1 no resolver defined to resolve somehost.dev, client: 127.0.0.1, server: *.dev, request: "GET /favicon.ico HTTP/1.1", host: "somehost.dev", referrer: "http://somehost.dev/admin"
Was ich falsch mache?
Antwort1
Fügen Sie resolver 127.0.0.1;
es Ihrer Konfiguration hinzu und ersetzen Sie 127.0.0.1 durch Ihre DNS-Server in Ihrem Setup, wenn Sie DNS nicht lokal ausführen.
Informationen zum Nginx-Resolver:
Syntax: resolver address ... [valid=time] [ipv6=on|off];
Default: —
Context: http, server, location
Konfiguriert Nameserver, die zum Auflösen der Namen von Upstream-Servern in Adressen verwendet werden, zum Beispiel:
resolver 127.0.0.1 [::1]:5353;
Eine Adresse kann als Domänenname oder IP-Adresse und optional als Port (1.3.1, 1.2.2) angegeben werden. Wenn kein Port angegeben ist, wird Port 53 verwendet. Nameserver werden im Round-Robin-Verfahren abgefragt.
Vor Version 1.1.7 konnte nur ein einziger Nameserver konfiguriert werden. Die Angabe von Nameservern über IPv6-Adressen wird ab den Versionen 1.3.1 und 1.2.2 unterstützt.
Standardmäßig sucht nginx beim Auflösen sowohl nach IPv4- als auch nach IPv6-Adressen. Wenn das Suchen nach IPv6-Adressen nicht gewünscht ist, kann der Parameter ipv6=off angegeben werden.
Die Auflösung von Namen in IPv6-Adressen wird ab Version 1.5.8 unterstützt.
Standardmäßig speichert nginx Antworten unter Verwendung des TTL-Werts einer Antwort. Ein optionaler valid
Parameter ermöglicht das Überschreiben:
resolver 127.0.0.1 [::1]:5353 valid=30s;
Vor Version 1.1.9 war die Anpassung der Caching-Zeit nicht möglich und Nginx speicherte Antworten immer für die Dauer von 5 Minuten im Cache.
Syntax: resolver_timeout time;
Default: resolver_timeout 30s;
Context: http, server, location
Legt ein Timeout für die Namensauflösung fest, zum Beispiel:
resolver_timeout 5s;