J'ai plusieurs serveurs Web Linux attachés à un équilibreur de charge, et j'aime partager des actifs (tels que des images, des vidéos et d'autres choses) entre ces serveurs. Quelle est la meilleure façon de procéder?
Actuellement, je suis monté sur un serveur de fichiers sur tous les serveurs Web, mais je crains qu'il ne tombe sous un trafic important. Comment puis-je éviter que cela se produise?
Merci d'avance.
linux
web-server
file-sharing
getmizanur
la source
la source
Réponses:
Il existe plusieurs façons de le faire en fonction de vos besoins.
Les deux premiers sont meilleurs si vous avez beaucoup de nouveaux fichiers à venir. Le troisième serait la solution idéale si vous n'ajoutez ou ne changez pas de fichiers aussi souvent car les utilisateurs obtiendront des 404 sur du contenu statique non encore synchronisé.
La dernière option peut être idéale à bien des égards, mais peut également s'avérer être la plus chère des 4. Vous devrez également réécrire vos sites Web pour prendre en charge cela.
la source
Un autre excellent moyen de réduire la charge sur les serveurs Web et d'effectuer l'équilibrage de charge est avec squid (à savoir squid3). Configurez-le en tant que proxy inverse avec mise en cache. Il mettra en cache le contenu statique tel que les images, etc. sur le disque dur (par défaut) ou sur la RAM (plus rapide et le meilleur) si vous le configurez de cette façon. Il est également capable de passer à la ronde vers d'autres serveurs Squid si un nœud particulier est surchargé.
la source
Étant donné que le besoin de plus de serveurs provient généralement des ressources nécessaires pour exécuter des sites Web / APS dynamiques, envisagez d'héberger des actifs statiques sur un autre sous-domaine / domaine. (comme static.yourdomain.com)
Vous pouvez ensuite utiliser un autre serveur / serveurs pour les héberger. L'hébergement de fichiers statiques n'utilise pas beaucoup de ressources, vous aurez donc besoin de beaucoup moins de serveurs pour votre contenu statique. Vous pourrez également libérer des ressources sur les serveurs pour votre contenu dynamique.
En fonction de votre équilibreur de charge, vous pouvez également le faire sur le même domaine, l'équilibreur de charge décidant quel serveur utiliser pour quelle demande, mais si vous utilisez un domaine distinct, vous pouvez mettre vos actifs statiques sur un CDN assez facilement, si le besoin devrait surgir!
la source
Une solution à ce défi que j'ai utilisée consiste à avoir la copie principale en lecture / écriture des fichiers sur un lecteur NFS partagé, mais également à conserver une copie en lecture seule sur chaque serveur Web afin qu'une défaillance de l'hôte NFS mette l'accès aux fichiers en mode lecture seule plutôt que de les perdre complètement.
rsync
s'exécute toutes les 15 minutes pour conserver la copie en lecture seule sur chaque hôte Web.check_link
script bash s'exécute toutes les minutes pour s'assurer que le montage NFS est toujours là et sinon il échange un lien symbolique vers la copie en lecture seule.Plus de détails se trouvent dans cet article à partir de la première configuration de ce système.
Avantages:
Inconvénients:
la source
Vous voudrez peut-être envisager une base de données NoSQL. Ils sont conçus pour fonctionner sur des clusters, fournir une cohérence éventuelle. Mais attention, ils ne sont pas ACIDES.
Voici une introduction qui vous aidera à décider quel type de base de données NoSQL vous pourriez souhaiter pour votre objectif.
Voici une liste de ressources liées à NoSQL disponible.
la source
Pourquoi n'essayez-vous pas une solution DFS, elles offrent un haut niveau de redondance et le volume peut être partagé entre autant de personnes que vous le souhaitez. Gluster est mon préféré et est très facile à installer et à configurer dans n'importe quelle distribution Linux célèbre
la source