Tout d'abord, je vais vous expliquer ma situation. Je gère un site Web assez populaire en tant que projet secondaire, de sorte que je ne peux pas vraiment investir une tonne d'argent dans celui-ci. J'ai actuellement un seul serveur avec HAProxy à l'avant qui envoie les 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 composé d'images, donc c'est très important). Ce serait bien de ne pas avoir à configurer un sous-domaine pour servir les images, car les URL courtes sont également très importantes, d'où ma raison d'utiliser HAProxy.
J'ai trouvé un fournisseur d'hébergement qui offre une bande passante non mesurée assez bon marché que j'utilise, le problème se pose lorsque je commence à pousser la bande passante au-delà de ce que la carte réseau de 100 mégaoctets peut gérer, ce qui nécessite un deuxième serveur.
J'ai beaucoup réfléchi à mes options, je vais donc vous expliquer chacune d'entre elles. J'espère que vous pourrez m'éclairer sur la meilleure option pour moi ou qu'il existe une autre option à laquelle je n'ai pas encore pensé.
Exigences :
-
La répartition uniforme de la bande passante est une nécessité. J'ai un serveur assez puissant, donc l'extension n'est pas envisageable. Je dois passer à l'échelle inférieure pour obtenir davantage de bande passante.
-
URLs courtes. Je n'ai vraiment pas envie de créer un sous-domaine, comme img.example.com, pour servir mes images. example.com/image.jpg est tel qu'il est maintenant, et j'aimerais vraiment qu'il le reste. Mais s'il n'y a pas d'autre moyen, alors je comprends.
-
Le serveur clostest qui traite la demande serait vraiment bien, mais pas indispensable. Quelque chose à garder à l'esprit.
HAProxy pour équilibrer la charge :
- Ce serait vraiment facile à faire puisque j'utilise déjà HAProxy de toute façon. Cependant, je pense que le problème se pose lors de la distribution de la bande passante. Je me trompe peut-être, mais HAProxy n'envoie-t-il pas la demande à un serveur qui la traite et la renvoie au client via HAProxy ? Ainsi, tout le trafic est renvoyé par l'équilibreur de charge, ce qui fait qu'il utilise autant de bande passante que tous les serveurs réunis.
DNS Round Robin :
- Cela pourrait être ma meilleure option. Il suffit de répliquer le site Web sur plusieurs serveurs et de faire ce que je fais actuellement. L'inconvénient est que si un serveur tombe en panne, les clients sont toujours envoyés vers ce serveur. J'aurais également besoin de répliquer le site sur les multiples serveurs. J'espérais pouvoir avoir un serveur principal qui gère tout sauf les fichiers statiques, puis avoir deux serveurs de fichiers statiques. J'ai également lu qu'il s'agissait d'une sorte d'équilibrage de charge pour les pauvres, et que ce serait bien d'avoir quelque chose d'un peu plus sophistiqué.
Retour direct du serveur :
- Cela semble vraiment compliqué, mais pourrait être une bonne option. Serait-il toujours possible d'envoyer certaines URL à certains serveurs ? Comme actuellement 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. Par exemple, toutes les requêtes php sont traitées par le même serveur qui exécute le logiciel d'équilibrage, tandis que toutes les requêtes jpg sont envoyées à plusieurs serveurs.
Idéalement, si HAProxy prenait en charge le retour direct au serveur, mon problème serait résolu. Je ne veux pas non plus utiliser de CDN, car ils sont très coûteux et il ne s'agit que d'un projet secondaire après tout.
Comprenez-vous mon problème ? Faites-moi savoir si je n'ai pas bien expliqué quelque chose ou si vous avez besoin de plus d'informations.
1 votes
C'est Imgur, qui a récemment levé 40 millions de dollars. :O