Nous avons une application Web Java EE exécutée sur un cluster de serveurs d'applications Glassfish. Le trafic entrant sera principalement des requêtes RESTful pour des représentations basées sur XML de nos ressources d'application, mais peut-être 5% du trafic pourrait être pour des représentations basées sur JSON ou XHTML/CSS.Quelle expérience avez-vous de l'utilisation de nginx et de memcached pour optimiser un site Web?
Nous étudions maintenant des solutions d'équilibrage de charge pour distribuer le trafic entrant à travers les instances de Glassfish dans le cluster. Nous étudions également comment décharger le cluster en utilisant memcached, une table de hachage distribuée en mémoire dont les clés seraient les noms des ressources REST (par exemple, "/ user/bob", "/ group/jazzlovers") et dont les valeurs sont les représentations XML correspondantes.
Une approche qui semble prometteuse est de tuer les deux oiseaux avec une pierre et d'utiliser le serveur HTTP/proxy inverse nginx léger et rapide. Nginx gérerait chaque requête entrante en regardant d'abord son URI dans memcached pour voir s'il y a déjà une représentation XML non expirée. Sinon, nginx envoie la requête à l'une des instances de Glassfish. Le module nginx memcached est décrit au this short writeup.
Quelle est votre impression générale avec nginx et memcached utilisés de cette façon, à quel point êtes-vous heureux avec eux? Quelles ressources avez-vous trouvé les plus utiles pour en apprendre davantage à leur sujet? Si vous les avez essayés et qu'ils ne vous convenaient pas, pourquoi pas, et qu'avez-vous utilisé à la place?
Note: voici un related question.
Mise à jour: J'ai demandé plus tard the same question sur ServerFault.com. Les réponses suggèrent principalement des alternatives à nginx (utiles, mais indirectement).
Merci, c'est extrêmement utile. –