Come posso ospitare più server Web fisici dietro un singolo indirizzo IP?


14

Sto eseguendo più server Web a casa mia, ognuno dei quali è collegato al mio router.

Server A Server B Server C

Attualmente posso usare solo un server poiché la mia porta IP 80 (xx.xxx.xx.xx) punta verso il server A. Tuttavia alcuni domini puntano al server A, alcuni a B, ecc.

Con il mio unico indirizzo IP, come posso indicare ciascun server? Ad esempio i miei record A (host) puntano solo al mio indirizzo IP.

Scusa se sembro confuso. Fammi sapere se non sono chiaro.

Ogni server esegue Ubuntu Server 12.04.02 e utilizza Apache (se ciò aiuta). Anche il mio router è Netgear e il mio ISP è Time Warner Cable.



@kobaltz Non esattamente poiché si tratta di server diversi, non di host virtuali. Questi sono 3 server fisici
Stephen Cioffi il

La mia risposta alla domanda è sempre la stessa cosa in cui avresti un server proxy inverso che sarebbe quello che viene colpito per la prima volta dopo il router. Da lì, spingerebbe i dati su uno dei tre server. Puoi persino farlo dall'interno del router se usi qualcosa come OpenWRT.
Kobaltz,

Attualmente sto usando la spiegazione nella mia risposta dell'altra domanda. Ho un server di macchina virtuale che aveva una macchina virtuale per il gateway e quindi 20 nodi. A seconda del sottodominio e del nome di dominio, invia i dati a uno dei 20 server.
Kobaltz,

Risposte:


9

I siti Web verranno riconosciuti tramite l' Host:intestazione inviata dal browser. Ma dal momento che il tuo router non è in grado di eseguire il demangling HTTP utilizzato dall'hosting virtuale, dovrai scegliere un server come "endpoint" (e dire al tuo router l'indirizzo come Virtual Server / DMZ).

Quindi, configura quella macchina come server web per i suoi domini e proxy per le altre (ad es. Usando il proxy inverso Apache ), o (forse meglio) installi un proxy su quella macchina e la usi per richieste multiplex agli altri server . Alcuni domini potrebbero persino essere ospitati sullo stesso computer. nginxè adatto per questo tipo di lavoro, ma è anche possibile utilizzare altri software (ad es pound.).

Penso che la seconda soluzione sia migliore perché non è necessario giocherellare con le configurazioni dei server Web: un proxy esegue il proxy e diversi server Web servono il servizio Web. Se è necessario aggiungere server o spostare host virtuali, questa architettura è più semplice da mantenere.

                                    +-- virtual hosts 1..9 -- server B
                                    |
router ----- machine A (nginx?) ----+-- virtual hosts 10..23- server C
                                    |
                                    +-- virtual hosts 24..99- server D

La latenza aggiunta dovuta alla decodifica della richiesta due volte (una volta dal proxy, una volta dal destinatario previsto) è trascurabile e più che compensata dall'accelerazione fornita dal proxy stesso.


Se creo un guest VM come proxy, qual è il miglior sistema operativo da utilizzare e quali risorse hardware devo allocare? Hai detto di impostare questo proxy sulla DMZ ... è necessario? Non posso eseguire il port forwarding solo delle porte che desidero aprire in modo che ci sia ancora un certo livello di protezione attraverso il firewall e il NAT del router?
Reece

Le risorse per il proxy non sono un problema, saranno fortemente legate alla rete. Per quanto riguarda il sistema operativo, direi sicuramente un Unix, Linux o BSD a seconda di ciò con cui ti senti più a tuo agio. Esistono anche dispositivi pronti per diverse soluzioni di virtualizzazione (vmware, virtualbox, xen, ecc.). E sì, puoi sicuramente port forwarding solo quelle porte di cui hai bisogno.
LSerni,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.