L'équilibrage de la charge application web PHP avec trois serveurs
J'ai 2 serveurs web et 1 serveur qui est destiné à être utilisé en tant que proxy inverse ou d'équilibrage de charge. 2 serveurs web réel/ip publics ainsi que l'équilibrage de charge. Serveur d'équilibrage de charge n'est pas encore configuré parce que je n'ai pas à choisir l'option qui sera le meilleur pour mes applications web. Je suis conscient d'un équilibreur de charge est risqué, parce que "point de défaillance unique" mais je veux aller avec elle.
2 serveurs web contiennent plus d'une application PHP/vhost (Apache + fastcgi) avec le même domaine et les différents sous-domaines. Elles utilisent toutes les sessions, les cookies et certains d'entre eux nécessitent SSL. Mon objectif principal est purement diviser les connexions entrantes dans la moitié, et les transmet à 2 web nœuds. Et si un nœud web est hors ligne, l'autre doit accepter toutes les connexions. Et je pense que si besoin est, nous pouvons faire le partage de session avec memcache.
J'ai lu sur Nginx, HaProxy et toute autre application que je peux trouver sur le net. Mais je ne peux pas décider parce que :
1) j'ai 1 serveur que je peux utiliser comme un équilibreur de charge, mais toute la configuration que j'ai trouvé sur le net a besoin de 2 équilibrage de la charge de nœuds.
2) je ne suis pas sûr de l'endroit où dois-je installer des certificats SSL (sur un équilibreur de charge ou de web nœuds) et qui est la meilleure solution pour tout en utilisant les connexions HTTPS.
Toute aide/l'idée est nécessaire, merci beaucoup.
OriginalL'auteur Ecdoram | 2011-06-30
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé HAProxy dans une configuration similaire et je le recommande fortement. Il peut fonctionner très bien sur un serveur unique et vous avez seulement besoin de deux serveurs pour l'équilibrage de la charge dans le cas où vous voulez une grande disponibilité.
Il existe de nombreux tutoriels comme cette qui fournit des explications détaillées sur la façon de les mettre en place dans la configuration que vous cherchez.
OriginalL'auteur Sukumar
Je viens d'hier a créé une configuration où NGINX serveur comme un équilibreur de charge, derrière lequel il y a 2 PHP-FPM serveurs, 1 serveur Memcache et 1 serveur MySQL. NGINX a été configuré à l'aide d'Amont et la fonctionnalité de configuration liés à la lignes sont quelque chose comme ceci:
HTTPS: Ils doivent être installés sur NGINX load-balancer si je ne me trompe pas - je n'ai jamais essayé moi-même. Une fois la demande du client est transmis à l'Application-serveur, il va la traiter, chercher de la demande et de l'envoyer à NGINX. Et NGINX, avant de relayer la réponse au client, permet de chiffrer le contenu. Ses une théorie bien sûr. Mais je suis 100% positif NGINX peut gérer SSL assez facilement. C'est la manière la plus rapide et la plus robuste de proxy/équilibreur et bon serveur lorsqu'il est combiné avec FASTCGI capacités de diverses interfaces de ligne de commande.
REMARQUE: Ce n'est pas une configuration pour un environnement de production, mais un test de scénario. Environnement de Production nécessite beaucoup de paramètres de sécurité. Ressources suivantes pourraient être utiles:
OriginalL'auteur
Dans toute situation où vous voulez HTTPS pour plus de 1 serveur web, la solution idéale serait d'avoir Nginx installé à l'avant de vos serveurs web. Il peut également être utilisé pour l'équilibrage de charge, mais si vous avez besoin de plus complexe options de configuration, puis c'est une bonne idée d'avoir Nginx les requêtes acheminées à votre HAProxy instance. Les deux services utilisent un minimum de ressources, donc ne vous inquiétez pas à propos de l'exécution à la fois.
Je suis familier avec l'idée de n'avoir 3 serveurs et ne voulant pas redondant load-balancers. J'ai effectivement écrit un eBook pour la généralisation des architectures et il y a des exemples avec 2-3-4 serveurs et seulement 1 répartiteur de charge. Peut-être qu'il peut fournir plus d'informations et vous aider à obtenir commencé.
OriginalL'auteur
Vous pouvez faire ce que vous avez besoin avec une seule HAProxy nœud (bien que cela laisse tout de même un point unique de défaillance).
J'ai écrit un tutoriel pour l'installation de HAProxy sur Rackspace Cloud, qui peut être adapté à n'importe quelle installation de Ubuntu. À l'aide de la
cookie
option, vous pouvez également appliquer la persistance de session, donc pas besoin de partager les sessions entre les boîtes, les utilisateurs ne perdent leur session si le box, ils sont sur va en bas de la mi-session.Une fois que vous avez votre standard trafic HTTP équilibré par HAProxy vous pouvez ensuite envoyer votre SSL ainsi à travers l'aide de la
mode tcp
option. Cela ne peut pas insérer des cookies dans la demande afin d'utiliser lebalance
mode desource
. Cela équilibre basé sur l'IP de l'utilisateur, afin de ne pas modifier la mi-session, à moins d'ajouter des noeuds.Votre SSL certificats sont ensuite installés sur votre site web nœuds que HAProxy est juste équilibrer le trafic TCP. D'ailleurs, vous pouvez utiliser ce mode de balance avec quoi que ce soit sur le protocole TCP, y compris les connexions MySQL pour certains de vrais solutions à haute disponibilité.
OriginalL'auteur Richard Benson