Im Grunde möchte ich einen lokalen Heimserver einrichten, der im Internet öffentlich zugänglich ist. Leider verwendet mein ISP CGNAT und um eine öffentliche IP zu erhalten, muss ich extra bezahlen (ca. 50 $). Ich dachte, es ist billiger, stattdessen VPS zu verwenden.
Ich habe also einen Wireguard-Server in Google Cloud über eine Compute Engine VM mit Ubuntu 20.04 eingerichtet. Ich habe auch einen Wireguard-Client für meinen lokalen Server zu Hause eingerichtet und ihn mit dem Wirequard-Server in Google Cloud verbunden. Zuletzt habe ich einen weiteren Wireguard-Client auf meinem Android-Telefon eingerichtet, ihn mit dem Server verbunden und alles funktioniert einwandfrei. Wenn ich Wireguard auf meinem Android-Telefon verwende, kann ich meinen lokalen Server von außen sehen (zu Testzwecken verwende ich mobile Daten).
Jetzt möchte ich den lokalen Server bei mir zu Hause der Öffentlichkeit zugänglich machen. Ich habe eine Domäne und habe die erforderlichen Einträge eingerichtet. Wenn ich ihn anpinge, gibt er die öffentliche IP der GCE-VM zurück, was meiner Meinung nach bedeutet, dass er einwandfrei funktioniert. Als nächstes habe ich Nginx in meiner GCE-VM installiert. Das lief einwandfrei. Ich konnte über die Domäne und die öffentliche IP-Adresse auf die Standard-Nginx-Seite zugreifen. Dann habe ich die Standardkonfiguration wie folgt geändert und Nginx danach neu gestartet.
server {
listen 80;
listen [::]:80;
server_name sub.domain.org; #sample only
location / {
proxy_redirect http://10.200.200.2 http://sub.domain.org;
}
}
Mein Wireguard liegt im IP-Bereich 10.200.200.x (ich bin nicht sicher, ob das die richtige Bezeichnung ist) und 10.200.200.2 ist die Wireguard-IP-Adresse meines lokalen Heimservers.
Ich habe vielleicht nicht verstanden, wie Nginx funktioniert, aber ich habe erwartet, dass ich über Nginx öffentlich auf meinen lokalen Heimserver zugreifen kann, indem ich surfehttp://sub.domain.org. Leider konnte ich nicht öffentlich darauf zugreifen. Es ist nur zugänglich, wenn ich mich mit Wireguard verbinde.
Muss ich sonst noch etwas tun?
Ich freue mich über jedes Feedback.
Antwort1
ngx_http_proxy_module
Sie sollten die Dokumentation von at durchlesen.http://nginx.org/en/docs/http/ngx_http_proxy_module.html.
Dokumente für proxy_redirect
Staaten:
Legt den Text fest, der in den Headerfeldern „Standort“ und „Aktualisieren“ einer Proxyserver-Antwort geändert werden soll.
Derzeit empfehlen Sie nginx also nur, in einigen Headern etwas Text zu ändern, aber keinen Datenverkehr an das Ziel (Heimserver) weiterzuleiten.
Sie benötigen mindestens eineproxy_pass
Richtliniedamit das funktioniert.
Beachten Sie, dass nginx die Inhalte Ihrer Sites nicht ersetzt! Wenn Ihre Site auf Ihrem Heimserver also absolute Pfade bereitstellt, müssen Sie das beheben.