NGINX Reverse Proxy auf IP Power Swith

673
Chris

Ich habe das folgende Setup:

  • NGINX-Setup als Reverse-Proxy für Raspberry Pi (dessen einziger Zweck)
  • -reverse Proxy funktioniert hervorragend für andere IPs im LAN sowie für mehrere Ports zu Diensten auf einem einzigen Windows-Desktop

Ich habe ein Problem mit nur einem LAN-Gerät. Ich kann den Reverse-Proxy nicht aufrufen. Es ist ein Remote IP Power Switch (3GStore)

Der DNS-Hosteintrag innerhalb des IP Power Switch ist "Outlet", daher wird im LAN durch Navigieren http://Outletdie Schnittstelle aufgerufen und wenn Sie stattdessen die IP eingeben und dieselbe Seite drücken, wird die gleiche Seite geladen, und die Adressleiste wird mit der lokalen IP-Adresse 192.168 belegt .0.xxx / index.asp

Ich denke, dass der Port der IP-Power-Switch sein könnte, da er sich auch auf Port 80 befindet. Ich habe ihn stattdessen auf 9080 geändert

Dies ist der Block, den ich in der Konfigurationsdatei habe, die ich in NGINX erstellt habe (das scheint für den Rest meiner umgekehrten Proxy-Geräte / -Dienste zu funktionieren, funktioniert aber NICHT für diesen IP-Netzschalter).

server { listen 80; server_name mydomaincom; location /powerswitch/ { proxy_pass http://192.168.0.xxx:9080/; include /etc/nginx/proxy_params; } } 

Das Navigieren zu mydomaincom/powerswitchErgebnissen führt zu einem NGINX 404-Fehler "Nicht gefunden"

Anregungen wären sehr dankbar!

1
Wenn Sie sich in Ihrem lokalen Netzwerk befinden, funktioniert dieser Link `http: //192.168.0.xxx: 9080 /`? Alex vor 7 Jahren 0
`nginx` schreibt die URL NICHT neu, wenn sie an das Zielgerät übergeben wird, es sei denn, Sie teilen es mit. Wenn Ihr Gerät also nicht etwas auf seinem Webserver hat, das auf "http://192.168.0.xxx:9080/powerswitch" reagiert, werden Sie nichts erhalten. @ unNameds Antwort ist das, was Sie tun müssen. LawrenceC vor 7 Jahren 0

2 Antworten auf die Frage

1
unNamed

Deine Config hat zwei Fehler:

  1. Die Site Ihres IP Power Switches leitet um und ist daher nicht extern verfügbar.

  2. Sie leiten die Anforderungen an die falsche Position für Ihr Gerät weiter.

Versuchen Sie diese Konfiguration:

server { listen 80; server_name my.domain.com; location /powerswitch/ { rewrite /powerswitch(/.*) $1 break; proxy_redirect / /powerswitch/; proxy_pass http://192.168.0.xxx; } } 

Ich habe die bearbeitet rewrite, die proxy_passund hinzugefügt proxy_redirect.

0
Chris

Ja, das Navigieren zur lokalen IP-Adresse und zum lokalen Port funktioniert ... leitet auf http://192.168.0.xxx/index.asp um

Ich habe da den Port von 9080 wieder auf 80 umgestellt

weitere Versuch und Irrtum und ich bekam es mit diesem Eintrag ("auf halbem Weg"):

server { listen 80; server_name my.domain.com; location /powerswitch/ { rewrite /powerswitch/(.*) /$1 break; proxy_pass http://192.168.0.xxx/powerswitch/; } } 

Laden Sie nun my.domain.com/powerswitchdie Schnittstelle des IP-Power-Switches lokal in das LAN ... ABER, und ziehen Sie das Gerät von außen hochmy.domain.com/powerswitch Zustände der Seite von (zeigt die lokale IP-Adresse in der Adressleiste an: 192.168.0.xxx/index.asp;getestet auf dem Mobiltelefon / WLAN aus).

Bis es nicht gelöst ist, bearbeiten Sie Ihre Frage und fügen Sie Details hinzu. Wenn Sie die Nginx-Konfiguration einfügen, wählen Sie mit den Mauszeilen die ursprüngliche Formatierung aus und drücken Sie die Taste `{}`, damit sie lesbar ist Alex vor 7 Jahren 0