Sì. Il proxy deve solo avere accesso instradabile, autenticato e limitato dalle policy a ciascun upstream; le app non devono condividere l'host del proxy.
Questa diventa una vera questione di compatibilità quando un unico punto di ingresso HTTPS instrada i domini domestici verso applicazioni su diversi server LAN o VLAN. Inizia con un percorso o un account usa e getta, mantieni disponibile lo stato precedente funzionante e valuta il design in base al carico di lavoro originale, non in base a un test di connessione una tantum.
Definisci quando il reverse proxy multi-host può funzionare
Il ramo supportato prevede indirizzi upstream espliciti con policy di integrità, TLS e firewall. Il ramo alternativo riguarda backend non instradabili, errori negli header affidabili o un'esposizione troppo ampia della rete di gestione. Registra versioni, identità, indirizzi, percorsi di mount, autorizzazioni e stato osservabile attuale prima di modificare uno dei due rami.
Il riferimento proxy upstream NGINX definisce il primo limite di compatibilità. Usalo per circoscrivere l'affermazione, poi verifica lo stesso comportamento su questo esatto server domestico invece di considerare una funzionalità documentata come prova che l'intero design funzioni.
Scrivi la regola decisionale prima del test: il successo deve garantire che ogni hostname raggiunga solo il backend previsto e che un upstream non disponibile restituisca un errore circoscritto senza influire sugli altri; il fallimento include la comparsa di loop di reindirizzamento, il mancato funzionamento dei WebSocket, la falsificazione dell'IP client o la possibilità per il proxy di raggiungere porte di amministrazione non correlate. In questo modo eviti che una connessione parziale o l'uscita corretta di un comando vengano scambiate per compatibilità end-to-end.
Esegui il test più piccolo che distingua i design
Usa un solo elemento discriminante controllato: aggiungi un upstream alla volta, verifica la raggiungibilità diretta dal proxy, quindi controlla gli header Host, i WebSocket, i reindirizzamenti, la gestione dell'IP client e il comportamento in caso di errore del backend. Mantieni costanti client, carico di lavoro, set di file, account e tempistiche, così il componente modificato rimane l'unica spiegazione plausibile.
Usa il reverse proxy Caddy per scegliere la seconda osservazione rilevante per questo percorso. Acquisisci entrambi i lati della transazione: resolver o percorso, protocollo negoziato, identità del processo, codice di uscita, latenza, byte trasferiti ed eventuali eventi di ripristino.
Ripeti il test dopo l'evento del ciclo di vita indicato nel titolo: ricreazione, riconnessione, nuovo mount, riavvio, failover o modifica del client. Un design che funziona solo finché vecchi socket, cache o credenziali restano attivi non ha superato il test.
curl -vk --resolve app.home:443:PROXY_IP https://app.home/
# testa WebSocket, caricamento, reindirizzamento e indisponibilità del backend
Interpreta i segnali di superamento, fallimento ed eccezione
SUPERATO: ogni hostname raggiunge solo il backend previsto e un upstream non disponibile restituisce un errore circoscritto senza influire sugli altri. Salva le versioni esatte e la topologia che hanno prodotto questo stato, perché la conclusione si applica a quelle condizioni e non a ogni implementazione del protocollo.
FALLITO: compaiono loop di reindirizzamento, i WebSocket non funzionano, l'IP client viene falsificato o il proxy può raggiungere porte di amministrazione non correlate. Controlla le dipendenze condivise, come DNS, MTU, identità, stato del firewall, latenza dello storage e sessioni memorizzate nella cache, prima di attribuire la responsabilità a uno dei due rami principali.
ECCEZIONE: rimuovi il percorso, ripristina la configurazione precedente del proxy e restringi le regole di routing, affidabilità e firewall prima di riprovare. Non ampliare i privilegi, eliminare dati sorgente, indebolire la sicurezza del trasporto o sostituire lo storage funzionante finché un'osservazione ripetibile non identifichi il limite che ha fallito.
Convalida la decisione con il carico di lavoro reale
Applica solo l'azione corrispondente al ramo osservato, quindi esegui nuovamente il carico di lavoro originale. Mantieni il design solo quando ogni hostname raggiunge esclusivamente il backend previsto e un upstream non disponibile restituisce un errore circoscritto senza influire sugli altri per due cicli di vita rilevanti e sotto il carico simultaneo previsto.
Usa le reti backend per reverse proxy per verificare il flusso di lavoro dipendente più vicino. Il suo comportamento in termini di accesso, tempistiche e ripristino deve rimanere invariato mentre il nuovo design è attivo.
Interrompi e torna allo stato salvato se compaiono loop di reindirizzamento, i WebSocket non funzionano, l'IP client viene falsificato o il proxy può raggiungere porte di amministrazione non correlate. Inoltra il problema con timestamp, versioni esatte, prove del percorso o del mount e la riproduzione minima, invece di aggiungere un altro workaround.
Confronta il risultato con i percorsi separati per i servizi, così il rischio non viene semplicemente spostato in un altro livello di rete, identità, backup o storage.
Per il reverse proxy multi-host, la risposta qualificata è quindi il giudizio iniziale, non un sì incondizionato. Lo stato osservabile di superamento è la soglia di accettazione; lo stato di fallimento è la soglia di rollback.
Domande frequenti
Il backend deve esporre una porta pubblica?
No. Deve solo avere un listener privato raggiungibile dal proxy e consentito dal firewall del backend.
Il traffico dal proxy al backend deve usare anch'esso TLS?
Usalo quando il percorso LAN o VLAN non è completamente affidabile o quando è necessario verificare l'identità del backend.
Un singolo server non disponibile può compromettere tutte le app sottoposte a proxy?
Non dovrebbe; testa timeout e isolamento dagli errori, così un upstream inattivo restituisce solo il proprio errore.
Supporto e consigli
Altro da leggere

Una galleria autogestita può preservare l'abbinamento delle Live Photo di Apple?
Una decisione condizionale sul server domestico per l'associazione delle Live Photo di Apple, con test controllati, interpretazione dei risultati, ripristino e domande frequenti mirate.

Puoi importare Google Takeout e i backup del telefono in un'unica libreria fotografica?
Una decisione condizionata per un home server dedicato all'importazione combinata di foto, con test controllati, interpretazione dei risultati, rollback e FAQ mirate.

Immich può utilizzare una libreria esterna senza acquisire la proprietà dei file?
Una decisione condizionale per home server sull'assegnazione della proprietà delle librerie esterne di Immich, con test controllati, interpretazione dei risultati, rollback e FAQ mirate.

