web server distribuito

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns e altro.
miciomacio91
Prode Principiante
Messaggi: 4
Iscrizione: giovedì 1 novembre 2012, 0:13

web server distribuito

Messaggio da miciomacio91 »

Sera, oggi volevo porvi una domanda per ampliare un mio progetto, sebbene non sia prettamente legato a ubuntu dato che è la distribuzione che uso quotidinamente ho deciso di provare a chiedere qui.

Ho un sito web che permette il download di una serie di file pdf della dimensione di 20mb/200mb attualmente su un server dedicato con 2tb di memoria di archiviazione di cui uso appena un quarto.
I download avvengono semplicemente tramite dei link diretti.

Mi è stato proposto di distribuire tramite questo sito molti più manuali per una dimensione totale di decine se non centinaia di TB.
La domanda che vorrei porvi è: come gestisco server multipli tenendo indicizzato su un solo sito tutto il materiale?
Mi spiego meglio, una quantità tale di dati andrà distribuita su diversi server che però dovrebbero essere raggiungibili dal medesimo dominio.

Capisco che la mia domanda possa essere scontata e molto generica ma non ho mai avuto a che fare con siti che richiedessero uno spazio di archiviazione tale.
Grazie.
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 12943
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: web server distribuito

Messaggio da thece »

Ciao,
dai una letta qui (Load Balancing) giusto per farti un'idea di cosa hai bisogno
miciomacio91
Prode Principiante
Messaggi: 4
Iscrizione: giovedì 1 novembre 2012, 0:13

Re: web server distribuito

Messaggio da miciomacio91 »

Ti ringrazio del link che mi è stato molto utile.
Dopo esseremi documentato un po' ho capito che l'archiettura di un infrastuttura server Load Balancing è, o almeno può essere:
i load balancer (gestiscono le richieste distribuendole per i vari nodi)
i nodi (i server che elaborano le richieste)
un sistema centralizzato di storage (con ad esempio i database che devono essere gli stessi per i vari nodi)

Nel mio caso cerco un sistema per distribuire lo spazio di archiviazione più che la capacità di elaborazione, ho notato che il load balancing ha diversi algoritmi per il forwarding ma tutti si basano principalmente sul numero di connessioni attive non ho trovato nulla che facesse al caso mio ovvero instradasse le varie richieste in base alla locazione del file richiesto.

Non so se mi sono spiegato ma pensavo a uno (o più) web server che attingessero a una serie di server di storage, esiste un sistema per configurare questo "nas distribuito"?

Grazie ancora.
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 12943
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: web server distribuito

Messaggio da thece »

miciomacio91 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4620960#p4620960][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: Non so se mi sono spiegato ma pensavo a uno (o più) web server che attingessero a una serie di server di storage, esiste un sistema per configurare questo "nas distribuito"?
Immagino di si ... ma ammetto la mia ignoranza, non ne conosco. Se provi a cercare "distribuited file storage" vengono fuori un pò di risultati, bisogna vedere se fanno al caso tuo

:ciao:
Avatar utente
kimj
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1058
Iscrizione: sabato 13 settembre 2008, 11:45

Re: web server distribuito

Messaggio da kimj »

ma vuoi che i file siano serviti dal frontend, che so, il server dietro al 'dominio principale' usando la propria connessione ma pescandoli da server terzi?
allora parli di reverse proxy (e dovresti usare come minimo delle vpn verso gli altri server per sicurezza)

vuoi che tutto il sito sia hostato su piu' server? ovvero, che allo stesso dominio possano rispondere piu' macchine?
allora fai 'load balancing' via dns, per lo stesso dominio fornisci piu' record A con eventualmente diverso peso. puoi anche sfruttare un dns distribuito come cloudflare e route53.

vuoi che solo i contenuti siano scaricabili da piu' server, non tutto il sito, e che questo avvenga dal 'sito principale'?

crea un sottodominio per miosito.com, per esempio, static.miosito.com.

static.miosito.com fa loadbalancing via dns e risolve a server diversi, in modo che server diversi, quando segui il link, rispondano col contenuto.

nota che questi server diversi dovrebbero tutti avere gli stessi dati, quindi o li replichi manualmente ho usi un'altra serie di server "per lo storage".
per esempio potresti sfruttare glusterfs su server collocati anche in luoghi 'remoti', col tutto accessibile via nfs su vpn, ma i server di storage dovrebbero stare su una propria rete non pubblica per sicurezza.

potresti sfruttare una CDN commerciale gia' disponibile, etc.

la cosa piu' facile mi sembra avere server diversi con contenuti diversi e parziali.
a quel punto dal sito principale semplicemente, quando scegli un file, vieni indirizzato all'ip di uno dei server che serve direttamente il file.
e' abbastanza facile fare un frontend simile (anche in php), che pesca da un database con la mappatura nomefile/server. il problema e' come tenere aggiornato il database. non sono al corrente di software per fare questo, ma puoi automatizzarlo facilmente...

pensa ad esempio ad uno script sui server coi contenuti che, lanciato da cron, lista i file presenti, eventualmente il loro hash, ed invia al server 'directory' la lista, per esempio con una email firmata. su questo hai un client che legge le email firmate ricevute dai vari server ed aggiorna il db.

la stessa lista puoi inviarla via s[sftp] che e' ancora piu' semplice e ti basta un programma in grado di effettuarne il parsing (ancora piu' facile)

puoi anche usare un sottodominio per server (per esempio, site09.miosito.com, o 09.files.miosito.com) e fare un rewrite dell'url/redirect...
di soluzioni ve ne sono tante, dipende da cosa cerchi di ottenere
We no longer think of chairs as technology; we just think of them as chairs. But there was a time when we hadn't worked out how many legs chairs should have, how tall they should be, and they would often 'crash' when we tried to use them.
miciomacio91
Prode Principiante
Messaggi: 4
Iscrizione: giovedì 1 novembre 2012, 0:13

Re: web server distribuito

Messaggio da miciomacio91 »

Mi hai dato un sacco di soluzioni a cui non avevo neanche pensato, mi sono buttato subito sulla ricerca di qualcosa di complicato quando in effetti posso risolvere con metodi molto più semplici.

Quello che vorrei ottenere è un sito da cui si possono scaricaricare diversi file presenti su diversi server ubicati possibilmente nello stesso luogo del webserver principale.
I file non dovranno essere modificati da utenti o amministatori quindi posso benissimo indicizzarli manualmente (naturalmente con l'ausilio di uno script che mi listi i file magari direttamente all'interno del db).

Credo che l'idea migiore è un indirizzamento ad un server stand alone che contiene il file, magari a cui associo un sottodominio, come mi hai consigliato.

Un altra opzione sarebbe quella di far passare tutti i file tramite il webserver principale cosa che mi darebbe un maggiore controllo sui download, infatti mi sarebbe più facile fare un log o limitarne l'accesso solo agli utenti con autorizzazioni però in compenso appesantirei molto il server principale.

Grazie davvero mi siete stati di grande aiuto.
Buona serata.
Scrivi risposta

Ritorna a “Ubuntu su server”

Chi c’è in linea

Visualizzano questa sezione: stonygate e 5 ospiti