Tout d'abord, je vais vous expliquer ma situation. Je gère un site Web assez populaire en tant que projet parallèle, donc je ne peux pas vraiment y investir une tonne d'argent. Je n'ai actuellement qu'un seul serveur avec HAProxy à l'avant qui envoie des demandes normales à Apache et toutes les demandes de fichiers statiques à Lighttpd. Cela fonctionne très bien car toutes les requêtes php et post sont traitées par Apache, tandis que toutes les images sont envoyées à Lighttpd plus rapide (le site est principalement des images, donc c'est vraiment important). Ce serait bien de ne pas avoir à mettre en place un sous-domaine pour servir les images, car les URL courtes sont également très importantes, donc ma raison d'utiliser HAProxy.
J'ai trouvé un fournisseur d'hébergement qui offre une bande passante illimitée assez bon marché que j'utilise, le problème survient lorsque je commence à pousser autant de bande passante que la carte réseau de 100 Mo peut gérer, nécessitant donc un deuxième serveur.
J'ai beaucoup réfléchi à mes options, je vais donc vous expliquer chacune d'elles. J'espère que vous pourriez donner un aperçu de laquelle est la meilleure option pour moi, ou peut-être qu'il y a une autre option à laquelle je n'ai pas encore pensé.
Exigences:
Même la distribution de bande passante est un must. J'ai un serveur assez puissant, donc la mise à l'échelle n'est pas une option. Je dois évoluer pour gagner plus de bande passante.
URL courtes. Je n'ai vraiment pas l'habitude de configurer un sous-domaine, comme img.example.com, pour servir mes images. example.com/image.jpg est comment c'est maintenant et comment j'aimerais vraiment qu'il reste. Mais s'il n'y a pas d'autre moyen, je comprends.
Le serveur le plus clément traitant la demande serait vraiment sympa, mais pas un must. Quelque chose à garder à l'esprit.
HAProxy pour équilibrer la charge:
- Ce serait vraiment facile à faire car j'utilise déjà HAProxy de toute façon. Cependant, je pense que le problème survient lors de la distribution de la bande passante. Je peux me tromper à ce sujet, mais HAProxy n'envoie-t-il pas la demande à un serveur sur lequel le serveur la traite, puis la renvoie via HAProxy au client? Ainsi, tout le trafic retourne via l'équilibreur de charge, ce qui lui fait utiliser autant de bande passante que tous les serveurs combinés.
DNS Round Robin:
- Cela pourrait être ma meilleure option. Répliquez simplement le site Web sur plusieurs serveurs et faites ce que je fais maintenant. L'inconvénient est que si un serveur tombe en panne, les clients y sont toujours envoyés. J'aurais également besoin de répliquer le site sur plusieurs serveurs. J'espérais en quelque sorte que je pourrais avoir un serveur principal qui gère tout sauf les fichiers statiques, puis avoir quelques serveurs de fichiers statiques. J'ai également lu que c'était en quelque sorte «l'équilibrage de la charge du pauvre», et ce serait bien d'avoir quelque chose d'un peu plus sophistiqué.
Retour direct au serveur:
- Cela semble vraiment compliqué, mais pourrait être une bonne option. Serais-je toujours en mesure d'envoyer certaines URL à certains serveurs? Comme en ce moment avec HAProxy, chaque URL qui se termine par la bonne extension de fichier est envoyée à Lighttpd, tandis que les autres extensions sont envoyées à Apache. J'aurais donc besoin de quelque chose de similaire. Comme, toutes les demandes php sont gérées par le même serveur qui exécute le logiciel d'équilibrage, tandis que toutes les demandes jpg sont envoyées à plusieurs serveurs.
Idéalement, si HAProxy supportait Direct Server Return, mon problème serait résolu. Je ne veux pas non plus utiliser de CDN, car ils sont vraiment chers, et ce n'est qu'un projet parallèle après tout.
Comprenez-vous mon problème? Faites-moi savoir si je n'ai pas expliqué quelque chose correctement ou si vous avez besoin de plus d'informations.