Prima di tutto, ti spiego la mia situazione. Sto gestendo un sito Web abbastanza popolare come progetto secondario, quindi non posso davvero investire un sacco di soldi in esso. Al momento ho solo un server con HAProxy nella parte anteriore che invia normali richieste ad Apache e tutte le richieste di file statici a Lighttpd. Funziona davvero bene perché tutte le richieste php e post vengono gestite da Apache, mentre tutte le immagini vengono inviate a Lighttpd più veloce (il sito è principalmente immagini, quindi è molto importante). Sarebbe bello non dover impostare un sottodominio per pubblicare le immagini, perché anche gli URL brevi sono davvero importanti, quindi la mia ragione per usare HAProxy.
Ho trovato un provider di hosting che offre una larghezza di banda illimitata piuttosto economica che sto usando, il problema si presenta quando comincio a spingere fuori tutta la larghezza di banda che la scheda di rete da 100 Mb può gestire, quindi è necessario un secondo server.
Ho pensato molto alle mie opzioni, quindi ti spiegherò ognuna. Spero che tu possa fornire qualche idea su quale sia l'opzione migliore per me, o forse c'è un'altra opzione là fuori che non ho ancora pensato.
Requisiti:
Anche la distribuzione della larghezza di banda è un must. Ho un server piuttosto potente, quindi il ridimensionamento non è un'opzione. Ho bisogno di ridimensionare per guadagnare più larghezza di banda.
URL brevi. Non voglio davvero impostare un sottodominio, come img.example.com, per pubblicare le mie immagini. example.com/image.jpg è come è adesso e come vorrei davvero che rimanesse. Ma se non c'è altro modo, allora capisco.
Il server più chiuso che gestisce la richiesta sarebbe davvero bello, ma non è un must. Qualcosa da tenere a mente.
HAProxy per bilanciamento del carico:
- Sarebbe davvero facile da fare dato che sto già usando HAProxy comunque. Tuttavia, penso che il problema si presenti quando si distribuisce la larghezza di banda. Potrei sbagliarmi su questo, ma HAProxy non invia la richiesta a un server in cui il server la elabora e quindi la restituisce tramite HAProxy al client? Pertanto, tutto il traffico viene restituito attraverso il bilanciamento del carico, causando l'utilizzo della stessa larghezza di banda di tutti i server combinati.
DNS Round Robin:
- Questa potrebbe essere la mia migliore opzione. Basta replicare il sito Web su più server e fare quello che sto facendo ora. Il rovescio della medaglia è che se un server si arresta, i client vengono comunque inviati ad esso. Avrei anche bisogno di replicare il sito su più server. Speravo in qualche modo di poter avere un server principale che gestisse tutto tranne i file statici e quindi un paio di file server statici. Ho anche letto che questo era una specie di "bilanciamento del carico del povero", e sarebbe bello avere qualcosa di un po 'più sofisticato.
Ritorno diretto al server:
- Sembra davvero complicato, ma potrebbe essere una buona opzione. Sarei ancora in grado di inviare determinati URL a determinati server? Come in questo momento con HAProxy, ogni URL che termina con l'estensione di file corretta viene inviato a Lighttpd, mentre altre estensioni vengono inviate ad Apache. Quindi avrei bisogno di qualcosa di simile. Ad esempio, tutte le richieste php sono gestite dallo stesso server che esegue il software di bilanciamento, mentre tutte le richieste jpg vengono inviate a più server.
Idealmente, se HAProxy supportasse Direct Server Return, il mio problema sarebbe risolto. Inoltre, non voglio usare un CDN, perché sono davvero costosi, e questo è solo un progetto secondario dopo tutto.
Capisci il mio problema? Fammi sapere se non ho spiegato qualcosa di giusto o se hai bisogno di maggiori informazioni.