So ordnen Sie eine Sub-Domain einer internen IP-Adresse zu

396
suamikim

Ich möchte einige interne Dienste wie den Webclient meines NAS (Synology DSM) über dedizierte Subdomains wie erreichen https://nas.example.com.

Die Dienste sind voll lauffähig und über interne IPs erreichbar https://192.168.0.200:5001.

Ich besitze die Domäne example.comund habe einen Apache-Server.

Es gibt zwei Gründe, warum ich das erreichen möchte:

  • Die Subdomain nas.example.comist leichter zu merken als192.168.0.200:5001
  • Ich möchte meine vorhandenen HTTPS-Zertifikate verwenden, für nas.example.comdie ich keine internen IP-Adressen verwenden kann

Ich habe schon mit Apache herumgespielt mod_rewrite, hatte aber überhaupt keinen Erfolg. Leider kann ich nicht sagen, ob dieses Szenario überhaupt möglich ist mod_rewriteoder ob ich es nicht richtig konfiguriert habe.

Einige Notizen:

  • Die Dienste sollten nicht von außen zugänglich sein, sondern nur von meinem LAN aus.
  • Im Idealfall sollten sie auch über die Subdomains erreichbar sein, wenn sie über SSH-Tunnel von außen mit dem Netzwerk verbunden sind. Daher ist ein dedizierter DNS-Server dnsmasqnicht das, wonach ich suche, da dies nur Anfragen aus dem LAN behandeln würde (nehme ich an ...).
1

2 Antworten auf die Frage

1
WhiteWind

Mit nginx ist das einfacher, aber Apache kann dies auch mit mod_proxy erledigen

Sie sollten einen VirtualServer für die Domäne nas.mysite.com einrichten und Reverse Proxy für diesen virtuellen Server aktivieren:

ProxyPass "/" "http://192.168.0.200:5001" ProxyPassReverse "/" "http://192.168.0.200:5001" 
1
HBruijn

Machen Sie sich nicht die Mühe, einen Reverse-Proxy einzurichten, wenn:

Die Dienste sollten nicht von außen zugänglich sein, sondern nur von meinem LAN aus.

Erstellen Sie einfach einen DNS-Eintrag, der nas.example.comauf Ihre IP-Adresse verweist

nas.example.com. IN A 192.168.0.200 

Nicht über das Internet routbare IP-Adressen aus dem Subnetz 192.168.0.0/16 funktionieren nur in Ihrem eigenen LAN.

Konfigurieren Sie dann die DSM-Webschnittstelle für die Ausführung auf Port 80, dem Standardport für HTTP, und Sie müssen in der URL keine Portnummer wie 5000 mehr verwenden.

Ja, ich habe diesen Punkt verpasst WhiteWind vor 6 Jahren 0
Zu Ihrer Information: Wenn ich könnte, hätte ich auch Ihre Antwort akzeptiert, da sie eine einfache Alternative darstellte, an die ich vorher nicht gedacht hätte, aber ich wählte die mit Reverse-Proxy, da sie mir mehr Optionen eröffnet. Danke so oder so! suamikim vor 6 Jahren 0