J'ai récemment hérité d'une petite configuration de serveur web à charge équilibrée basée sur Linux. Malheureusement, il n'a jamais été complètement mis en ligne, alors je m'y emploie.
La configuration de base est la suivante :
- Équilibreur de charge basé sur LVS. Agit également comme un simple NAT pour les serveurs web.
- Deux serveurs web Apache/PHP5.
- Serveur de base de données MySQL.
Le serveur de base de données se trouve à l'intérieur du pare-feu principal de l'entreprise, tandis que les trois autres sont dans la zone démilitarisée. L'équilibrage de charge de base fonctionne, mais j'ai eu des difficultés à faire persister les connexions avec LVS et comme le stockage des sessions pour PHP5 utilise des fichiers locaux, nous perdons des sessions. Je pourrais être en mesure de faire en sorte que LVS conserve les sessions, mais comme les connexions sont généralement destinées à un grand nombre de clients NATés derrière le même pare-feu avec des délais parfois longs entre les requêtes, je pense que c'est une proposition perdante. J'ai décidé de passer plutôt à memcached pour le stockage des sessions, car il sera rapide à mettre en place.
Ma question est la suivante : où doit se trouver le service memcached ? Je ne peux pas ajouter un autre serveur, donc il doit vivre soit avec l'équilibreur de charge, soit avec le serveur de base de données. Pour le moment, je penche pour le mettre avec le serveur de base de données, car il n'a pas de connexions externes, mais je crains que les deux puissent entrer en conflit dans une certaine mesure. Existe-t-il une meilleure pratique pour ce type de situation ? Ou d'autres conseils ?