Est-ce une bonne idée d'utiliser Apache Webserver devant GF ou Tomcat? Cela améliore-t-il les performances/la sécurité?
Ou il n'y a aucune raison d'utiliser Apache Web Server avec GF?
Tiré de http://wiki.Apache.org/Tomcat/FAQ/Connectors#Q
Puisque tout le monde vous a donné des raisons de mettre Apache devant Tomcat, laissez-moi vous donner quelques raisons pour lesquelles ne pas :
Mettre Apache devant [~ # ~] pas [~ # ~] :
Ce qu'Apache vous donne, c'est plus de plugins et vous permet d'exécuter différentes technologies Web.
Si vous n'avez besoin que de Tomcat, vous seriez mieux placé pour utiliser un HAProxy ou Nginx comme équilibreur de charge.
Évolutivité - Comme l'ont souligné Amir et user384706, vous pouvez équilibrer la charge de plusieurs instances de votre application derrière Apache. Cela vous permettra de gérer plus de volume et d'augmenter la stabilité au cas où l'une de vos instances tomberait en panne.
Sécurité - Apache, Tomcat et Glassfish prennent tous en charge SSL, mais si vous décidez d'utiliser Apache, c'est probablement là que vous devez le configurer. Si vous souhaitez une protection supplémentaire contre les attaques (DoS, XSS, injection SQL, etc.), vous pouvez installer le pare-feu d'application Web mod_security .
Fonctionnalités supplémentaires - Apache a un tas de modules Nice disponibles pour la réécriture d'URL, l'interfaçage avec d'autres langages de programmation, l'authentification et une tonne d'autres choses.
Performances - Si vous avez beaucoup de contenu statique, le servir avec Apache améliorera vos performances. Si la plupart de votre contenu est dynamique, l'utilisation de Tomcat ou Glassfish seul sera tout aussi rapide (probablement plus rapide).(comme le soulignent les réponses à cette question , ce n'est plus vrai.)
Une des raisons pour placer Apache devant Tomcat serait pour l'équilibrage de charge.
Les requêtes atteignent le serveur Apache en avant et sont distribuées au backend Tomcat conteneurs selon la charge et la disponibilité.
Les clients ne connaissent qu'une seule IP (Apache) mais les demandes sont réparties sur plusieurs conteneurs.
C'est donc dans le cas où vous déployez une sorte d'application Web distribuée et que vous en avez besoin robuste.
Si votre question concerne une application Web simple, voir la réponse de dbyrne
Si vous exécutez une pile LAMP, vous pouvez exécuter des trucs PHP/Ruby depuis Apache et transmettre des trucs Java à Tomcat avec mod_jk.