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.