De bron leverde een werkend lokaal reverse-proxyontwerp op: verplaats het ZimaOS-dashboard weg van poort 80, reserveer poorten 80/443 voor de reverse proxy, maak lokale DNS-records aan en laat de Nginx-proxydoelen verwijzen naar het vaste LAN-IP-adres van de ZimaOS-server plus de daadwerkelijke poort van elke app.
De belangrijkste ontwerpkeuze was het voorkomen van een DNS-lus. De Bind9-records van de gebruiker gebruikten gebruiksvriendelijke namen zoals food.sdak, terwijl de upstreambestemming van Nginx het vaste IP-adres van ZimaOS bleef—bijvoorbeeld 10.66.66.30:9925—in plaats van de hostnaam opnieuw via zichzelf te proxy'en.
Verplaats de ZimaOS WebUI van poort 80
In de bron wijzigde de gebruiker de ZimaOS WebUI naar poort 83. De exacte alternatieve poort is niet belangrijk; kies een ongebruikte poort en documenteer deze.
Controleer na de wijziging eerst de directe toegang:
http://ZIMA_LAN_IP:83
Voeg Nginx pas toe als de nieuwe directe dashboard-URL werkt.
Ook voor poort 443 kan dezelfde planning nodig zijn
In het communityantwoord werd vermeld dat de HTTPS-instellingen van ZimaOS onder de ontwikkelaarsmodus staan en kunnen conflicteren met een reverse proxy die eveneens poort 443 wil gebruiken. Bepaal voordat je beide inschakelt welke service poort 443 beheert.
Als Nginx HTTPS beëindigt, kan de backend privé-HTTP op het LAN blijven gebruiken, tenzij je beveiligingsmodel TLS op beide verbindingen vereist.
Gebruik een stabiel LAN-IP-adres voor het reverse-proxydoel
De gebruiker uit de bron kende een vast IP-adres toe aan de ZimaOS-host en gebruikte dat adres in de upstreamconfiguratie van Nginx. Huidige versies van ZimaOS ondersteunen DHCP of handmatige statische netwerkconfiguratie onder Instellingen → Netwerk.
Zie de huidige workflow voor statische IP-adressen in ZimaOS.
Maak lokale DNS-records voor gebruiksvriendelijke namen
Gebruik voor een uitsluitend lokaal DNS-naamruimte bij voorkeur geen .local voor gewone unicast-DNS, omdat dit achtervoegsel conventioneel wordt gebruikt door mDNS. Gebruik je echte interne domein of een andere bewust beheerde lokale naamruimte.
Laat Nginx verwijzen naar backends van het type IP:poort
Zo voorkom je dat de openbare of gebruiksvriendelijke hostnaam vanuit dezelfde proxy wordt opgelost en het verkeer per ongeluk opnieuw naar de proxy wordt gestuurd.
Behoud WebSocket-/Upgrade-verkeer voor interactieve apps
ZimaOS en veel zelfgehoste apps gebruiken langdurige WebSocket- of HTTP-upgradeverbindingen. Een pagina kan er volledig geladen uitzien terwijl livewidgets of appdialoogvensters niet werken als de reverse proxy de vereiste upgradeheaders niet doorstuurt.
Gebruik de juiste WebSocket-ondersteuning van Nginx/Nginx Proxy Manager voor toepassingen die dit nodig hebben.
Lokale DNS vereist geen blootstelling aan het openbare internet
Het doel in de bron was lokaal gebruiksgemak, niet het publiceren van de NAS op internet. Beperk de proxyluisterpoorten en DNS-records tot vertrouwde netwerken, tenzij je bewust externe toegang ontwerpt met authenticatie, certificaten, firewallregels en een passend dreigingsmodel.
Herstarts herstelden ARP/status in de bron, maar vormen niet de kern van de configuratie
De gebruiker herstartte zowel ZimaOS als IPFire na het wijzigen van de poorten en meldde dat hierdoor verouderde ARP-/netwerkstatus werd vrijgegeven. Dit was bron-specifieke opschoning en geen universele vereiste na elke proxywijziging.
Veelgestelde vragen over de Nginx-reverse-proxy
Waar wijzigde de bron de ZimaOS WebUI-poort?
Instellingen → Algemeen.
Waarom gebruikte de bron het vaste IP-adres als Nginx-bestemming?
Om een DNS-/proxy-lus te voorkomen en de backendbestemming voorspelbaar te maken.
Moeten lokale reverse-proxynamen aan internet worden blootgesteld?
Nee. Het volledige ontwerp kan binnen het LAN blijven met lokale DNS.
