Nginx Proxy Manager - Auf /Seiten verlinken

tobi.wld

Lt. Junior Grade
Registriert
Dez. 2020
Beiträge
268
Hallo zusammen

Ich würde gerne mein Monitoring System (Zabbix) übers Internet erreichbar machen. Es ist im lokalen Netzwerk erreichbar unter "http://[Servername]/zabbix".
Ich habe probiert es freizugeben, allerdings habe ich keine Möglichkeit gefunden wie man NPM sagen kann, dass er bei einem Aufruf folgendes Abrufen soll:
"http://[Server-IP]:80/zabbix]"

Gibt es da irgendeine Möglichkeit dazu?
 
@tobi.wld hatte mal ne Anleitung bezüglich Bitwarden geschrieben, vlt hilft dir die ja auch bei deinem Thema weiter :)
Link
 
  • Gefällt mir
Reaktionen: tobi.wld
http würde ich mal so gar nicht nach außen freigeben. Schon mal über ein VPN nachgedacht? Mit pivpn.io ist es kinderleicht ein Wireguard Tunnel einzurichten.
 
  • Gefällt mir
Reaktionen: tobi.wld
tobi.wld schrieb:
Hallo zusammen

Ich würde gerne mein Monitoring System (Zabbix) übers Internet erreichbar machen. Es ist im lokalen Netzwerk erreichbar unter "http://[Servername]/zabbix".
Ich habe probiert es freizugeben, allerdings habe ich keine Möglichkeit gefunden wie man NPM sagen kann, dass er bei einem Aufruf folgendes Abrufen soll:
"http://[Server-IP]:80/zabbix]"

Gibt es da irgendeine Möglichkeit dazu?

Ich kenne Zabbix nur vom Namen und was es ist (und kenne daher den Bezug zu NPM (NodeJS-Pakete) nicht), aber im Prinzip hast du folgende Situation:

Zabbix läuft auf einem internen Server und ist erreichbar unter: http://zabbix.local oder http://lokaleip - korrekt?

Und möchtest das ganze jetzt aus dem Internet erreichbar haben, als bspw. unter http(s)://zabbix.example.com

Dann wäre ein Reverseproxy eine mögliche Lösung (Nginx bspw.): Du richtest eine Domain ein, lässt die auf den Server zeigen auf dem der Reverseproxy läuft (dieser muss natürlich aus dem Internet erreichbar sein) und definierst dort dann eine Site, die den "internen" Server dann als Upstream hat. Auf diesem Reverseproxy-Server kann dann auch Letsencrypt laufen oder du kannst ein Zertifikat für die (Sub)Domain kaufen.

Was dafür natürlich notwendig ist, ist ein entsprechendes Netzwerkkonzept, dass alles entsprechend absichert.
 
  • Gefällt mir
Reaktionen: tobi.wld
cmi777 schrieb:
Bezug zu NPM (NodeJS-Pakete)
Mit NPM meinte ich den "Nginx Proxy Manager", ist leicht zu verwechseln xD

cmi777 schrieb:
Wäre in dem Fall erreichbar unter http://zabbix.local/zabbix
Unter http://zabbix.local kommt die Apache2 Standard-Seite

cmi777 schrieb:
Dann wäre ein Reverseproxy eine mögliche Lösung (Nginx bspw.): Du richtest eine Domain ein, lässt die auf den Server zeigen auf dem der Reverseproxy läuft (dieser muss natürlich aus dem Internet erreichbar sein) und definierst dort dann eine Site, die den "internen" Server dann als Upstream hat. Auf diesem Reverseproxy-Server kann dann auch Letsencrypt laufen oder du kannst ein Zertifikat für die (Sub)Domain kaufen.
Genau das habe ich schon, klappt bei anderen Servern auch problemlos (wo der Service auf einem bestimmten Port läuft bzw. auf der Standard-Seite http://server.local läuft). Sobald der Service aber hinter einem "/" steht kann ich das dem Nginx Proxy Manager nicht sagen
 
tobi.wld schrieb:
Wäre in dem Fall erreichbar unter http://zabbix.local/zabbix
Unter http://zabbix.local kommt die Apache2 Standard-Seite


Genau das habe ich schon, klappt bei anderen Servern auch problemlos (wo der Service auf einem bestimmten Port läuft bzw. auf der Standard-Seite http://server.local läuft). Sobald der Service aber hinter einem "/" steht kann ich das dem Nginx Proxy Manager nicht sagen

Ah, danke zur Aufklärung bzgl. NPM :D

Ich verstehe das Problem und das geht in der Tat (via Reverseproxy) nicht, das müsstest du auf der "finalen" Serverseite lösen. Ist das mit dem

Unter http://zabbix.local kommt die Apache2 Standard-Seite
nur ein vereinfachtes Beispiel gewesen, oder in der Tat so? Dann könntest du dort ja eine dauerhafte Weiterleitung einrichten. Alternativ im Apache eine eigene Siteconfig für Zabbix, die die Inhalte auf einem alternativen Port ausliefert? Das wiederum würde mit proxy_pass gehen.

Also bspw. (im Reverseproxy):

Code:
location / {
      set $upstream http://interneip:8080;
 
      proxy_pass $upstream;
      # ggf. ergänzt um
      proxy_redirect http://interneip:8080 https://zabbix.example.com;
}
Ergänzung ()

Ergänzung:

Du kannst mit dieser Lösung "trotzdem" mit https://zabbix.example.com/zabbix arbeiten, aber ich denke das weißt du schon. Das einzige Problem dabei ist, dass damit natürlich auch der Webserver insgesamt unter dem Namen erreichbar ist. Also auch

Unter http://zabbix.local kommt die Apache2 Standard-Seite

wenn das nicht passieren darf, geht m.E. kein Weg an einer eigenen Siteconfig im Apache vorbei, wenn es über einen Reverseproxy laufen soll. (Inwiefern VPN o.ä. als alternative Lösung zum Reverseproxy denkbar und möglich wäre, kann ich nicht abschätzen, da fehlt mir das Wissen.)
 
Zuletzt bearbeitet:
Zurück
Oben