2016-09-30 4 views
0

Kurz:nginx windows 10 upstream timeout

Wie kann ich ein Upstream-Timeout für Nginx auf Windows einrichten?

Long:

Ich bin zur Zeit auf Windows 10 und ich habe ein nginx Problem. Also das Problem ist, dass ich 2 verschiedene Upstreams auf meinem Dev-Rechner haben möchte, von denen einer auf einen lokal laufenden Webserver und der andere auf einen Andock-Container zeigt.

upstream api { 
    server 127.0.0.1:9000; 
    server 192.168.99.100:9000; 
} 

location /api { 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 
     proxy_pass http://api; 
     proxy_redirect off; 
} 

die Fehlermeldung:

2016/09/30 19:56:56 [Fehler] 9836 # 11440: * 154 stromaufwärts timed out (10060: Ein Verbindungsversuch fehlgeschlagen, weil die verbundenen Teilnehmer hat nicht richtig nach einer bestimmten Zeitspanne reagiert oder die Verbindung ist fehlgeschlagen, weil der verbundene Host nicht reagiert hat) während der Verbindung mit dem Upstream, Client: 127.0.0.1, Server: localhost, Anforderung: "POST /api/v1/demoText HTTP/1.1 ", vorgelagert: " http://127.0.0.1:9000/api/v1/demoText“, host: "localhost: 9091", Referrer: "http://localhost:9091/demo"

So ist es ganz offensichtlich, dass nginx die man hat, die nicht vorhanden ist, und warten Sie 1 min bis Auszeit. Unter Mac OS X und Linux funktionierte es wie erwartet, aber nicht unter Windows.

Ich versuchte proxy_read_timeout 1; in der Lage Teil aber ohne Erfolg

Antwort

0

Ich würde überprüfen, ob Sie tatsächlich die Konnektivität zwischen dem Docker Behälter haben (z. 10.0.75.2) zurück zu Ihrem Hostadapter auf dem Seitenfenster. Auf der Windows-Seite sollte der Adapter so etwas wie vEthernet (DockerNAT) genannt werden.

Überprüfen Sie als Nächstes die Windows-Firewall (Windows-Firewall mit erweiterter Sicherheit), um sicherzustellen, dass Sie die richtige Firewall eingerichtet haben (dort sollten einige Standardregeln vorhanden sein).

Schließlich (und dies scheint jedes Mal zurückgesetzt werden, wenn docker ein Update hat), sehen Sie, wenn Sie die Netzwerkkategorie auf dem Adapter ändern. Dies ist wahrscheinlich am besten auf eine Entwicklungsumgebung beschränkt. Sie können dies von Powershell ausführen, das als Administrator ausgeführt wird, indem Sie den folgenden Befehl ausführen:

Set-NetConnectionProfile -InterfaceAlias "vEthernet (DockerNAT)" -NetworkCategory Private

Verwandte Themen