IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Serveur dedié pour J2EE avec Tomcat : Apache2 nécessaire ?


Sujet :

Tomcat et TomEE Java

  1. #1
    Invité
    Invité(e)
    Par défaut Serveur dedié pour J2EE avec Tomcat : Apache2 nécessaire ?
    Bonjour,

    Je reviens poser une question est il nécessaire d'installer un serveur web sur un serveur dédié debian kimsuffi quand on veut mettre un site qui sera déployé sur tomcat ? En effet, je m'interroge: pour acceder aux applications deployées sur tomcat, il faut passer par un autre port que le 80. Donc la transition ne se fait pas automatiquement. Ou est il possible d'associer un port d'entrée derrière l'url du serveur sur lequel se trouve le site que l'on veut déployer (par exemple www.toto.fr avec derriere xxx.xxx.xxx.xxx:YYYY
    lors de la configuration du serveur) ?

    Merci d'avance pour votre aide.

    Cordialement,

    Anaia

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Bonjour,

    -Il n'est pas impératif d'avoir un apache en frontal de ton tomcat, mais ceci est vivement conseillé si tu veux accélerer les temps de traitement de requêtes par ton application. Pour la simple raison qu'en couplant Apache+tomcat tu peux déléguer les ressources statiques (Js/Images/css) à Apache et les requêtes dynamiques à Tomcat, ce qui allège Tomcat.En Outre Apache offre plusieurs fonctionnalités de traitement des requêtes HTTP dont tu pourrais en bénéficier.Mais en conclusion pour ton besoin encore ce n'est pas impératif de l'installer.
    -Pour ce qui est des ports, sur ton serveur dédié c'est toi qui autorises l'ouverture extérieure des ports que tu souhaites.Oui tu peux configurer une redirection d'Url vers URLort
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci de ta réponse rapide . Je ne dis pas non à apprendre à utiliser Apache ^^. Par contre, je suis un peu perdu. Pour js/images/css, qu'entends tu par "déléguer" ? Est ce les stocker en dehors du fichier war et donc les appeler dans le code via un url ? Mais quel type d'url serait ce ? En gros, comment s'écrirait celui ci ? Via un chemin local (../xxxx/xxx/xxx.css) ou un url global (http://xxxxx.xxxx/xxx.css) ?
    Tu l'as compris, je suis intéressé par Apache pour la partie : "accélérer les temps de traitement de requêtes". J'aurai pensé l'inverse vu que cela implique le passage par un autre programme avant d'arriver au serveur applicatif. Apache, est ce compliqué à utiliser ?

    En tout cas, je te remercie pour ta réponse et te souhaite une bonne journée.

    Cordialement,

    Anaia

  4. #4
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Citation Envoyé par anaia Voir le message
    Merci de ta réponse rapide . Je ne dis pas non à apprendre à utiliser Apache ^^. Par contre, je suis un peu perdu. Pour js/images/css, qu'entends tu par "déléguer" ? Est ce les stocker en dehors du fichier war
    Anaia
    Tu peux les mettre où tu veux tes ressources statiques. Il faudra juste au moment de la configuration indiquer à Apache où aller les chercher.Cela allège simplement tomcat (ou tout autre serveur d'application). Voici un lien qui te montrera effectuer déjà le couplage. Fais déjà marcher ça et on verra après pour la gestion des ressources statiques.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci ^^. Je viens d'installer debian sur un pc fixe chez moi pour faire ces essais. Je vais faire marcher et je reviendrai pour la suite.

    Bonne soirée

    Cordialement,

    Naia

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur Java/Scala
    Inscrit en
    Octobre 2007
    Messages
    1 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Scala

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 086
    Points : 2 271
    Points
    2 271
    Par défaut
    En fait il est préférable de découpler ton appli en plusieurs domaines différents et ne pas tout faire au même endroit.

    Avoir un serveur Apache pour les ressources statiques permet d'éviter à ta JVM de se prendre plein de requêtes inutiles pour charger des images.
    En gros, il ne reste plus que les "vrais requêtes" qui vont arriver sur ton serveur, donc tu devrais avoir moins de consomation des resources de ta JVM.
    Ca permet de scaler un peu ton application, tu peux mettre le Apache et le Tomcat sur deux machines différentes par exemple.



    A noter qu'Apache est pas forcement le plus rapide de ce que j'ai entendu dire et que Nginx est surement mieux pour servir des ressources statiques.
    Après c'est vrai qu'historiquement tout le monde a tendance à utiliser Apache, même avec Tomcat (connecteur AJP)

    On m'a aussi parlé des performances prodigieuses de Varnish, qui utilise les concepts de "mechanical sympathy" pour carburer.
    React-Hebdo - Newsletter pour se tenir à jour sur l'écosystème React

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir, merci pour les éclaircissements. Je vais faire comme vous me l indiquez et installer Apache. En fait, je vais déjà apprendre â utiliser Apache et plus globalement essayer de faire une configuration de serveur dédié pour des applications web sur le PC fixe (debian, tomcat, apache, dftp pour le stockage et peut-être svn) pour me rapprocher de l'environnent que j'ai au travail et ensuite je prendrai un serveur dédié à 10 euros par mois chez kimsufi. Ainsi je me ferai un petit blog avec un projet maven auquel viendront se greffer un module web pour l'UI et un module java pour les opérations coté serveur (bfd, traitement des données,...). J ai déjà réalisé le squelette avec des technologies spring/struts2/hibernate. La base de données sera postgresql histoire de me rapprocher de celle d'Oracle et plus particulièrement de son langage, le PL/SQL. Ainsi, j'essayerai de maximiser les traitements sur les données coté de la BDD (tables temporaires par exemple pour l'import de données,...).

    Aller, bonne soirée/nuit et merci.

    Cordialement,

    Naia.

    PS: Demain j'attaque Apache ^^.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    J'ai effectué la mise en place de la redirection des morceaux d'url vers tomcat via le module jk_mount. J'ai du utiliser un autre tutoriel à jour avec la version actuelle d'apache 2 (2.4) : ici et mettre à jour l'example donné en /examples/.
    Seulement, au lancement d'apache 2, j'obtiens cette erreur :
    jkmount needs a path when not defined in a location
    Je vais chercher demain d'où vient le problème. Il est à noter que l'on utilise le port 8009 et je me demande ce qui est envoyé comme url à tomcat.

    Sinon, je suppose que les fichiers de type js, css, les images, les vidéos doivent être mis dans var/www et que ce qui va faire la différence est l'extension des fichiers ? Ainsi, je ne devrai pas mettre directement /nomDuProjet/* mais plutôt /nomDuProjet/*.jsp et /nomDuProjet/*.do ?

    Aller, bonne soirée et merci d'avance pour vos réponses.

    Cordialement,

    Naia.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Finalement j'ai fait à ma façon en lisant tranquillement les commentaires dans les différents fichiers et cela marche. Donc, que dois je faire ensuite pour partager entre tomcat et apache mes ressources ? Cela ne se ferait il pas au sein du site déclaré dans le répertoire "sites-available" d'apache2 ?

    Je vous remercie d'avance pour votre aide.

    Anaia

  10. #10
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Citation Envoyé par anaia Voir le message
    Bonjour,

    Finalement j'ai fait à ma façon en lisant tranquillement les commentaires dans les différents fichiers et cela marche. Donc, que dois je faire ensuite pour partager entre tomcat et apache mes ressources ? Cela ne se ferait il pas au sein du site déclaré dans le répertoire "sites-available" d'apache2 ?

    Je vous remercie d'avance pour votre aide.

    Anaia
    Bonjour,

    Je vais te filer une partie de mon httpd.conf configurant ce loadBalancing :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    JkWorkersFile /etc/httpd/conf/workers.properties
    # Location of the log file
    JkLogFile /var/log/mod_jk.log
    # Log level : debug, info, error or emerg
    JkLogLevel error
    # Select the timestamp log format
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
    # Shared Memory Filename ( Only for Unix platform ) required by loadbalancer
    JkShmFile /var/log/jk.shm
     
     
    # Assign specific URL to the workers
    Alias /mon_appli/static/ "/chemin_complet_vers_mes_ressources/static/"
    JkMount /mon_appli  loadbalancer
    JkMount /mon_appli/* loadbalancer
    JkUnMount /mon_appli/static loadbalancer
    JkUnMount /mon_appli/static/* loadbalancer
           <Location "/mon_appli/static/">
                Allow from all
            </Location>
    #End of httpd.conf
    Et mon fichier workers.properties :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    # -----------------------
    # List the workers name
    # -----------------------
     
    worker.list=ton_serveur1,ton_serveur2,loadbalancer
     
    # -----------------------
    # worker1: ton_serveur1
    # -----------------------
    worker.ton_serveur1.port=9009
    worker.ton_serveur1.host=localhost
    worker.ton_serveur1.type=ajp13
     
    # -----------------------
    # worker2: ton_serveur2
    # -----------------------
    worker.ton_serveur2.port=8009
    worker.ton_serveur2.host=localhost
    worker.ton_serveur2.type=ajp13
     
    # -----------------------
    #Config du loadbalancer
    # -----------------------
    worker.loadbalancer.type=lb
    worker.loadbalancer.balanced_workers =ton_serveur1,ton_serveur2
    worker.loadbalancer.lbfactor=1
    worker.loadbalancer.sticky_session=true
    #End of workers.properties
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  11. #11
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup

  12. #12
    Invité
    Invité(e)
    Par défaut
    Par contre, il y aurait il possibilité de savoir comment vous utilisez mod_rewrite pour passer de http://localhost/ à http://localhost/aaaa et que le aaaa reste ensuite lorsque l'on clique sur un lien situé sur aaaa (donc http://localhost/aaaa/bbbb) s'il vous plait ?

    Bon, dès fois que cela intéresse quelqu'un, voici la solution que j'ai trouvé à mon problème avec mod_rewrite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            RewriteEngine On
            RewriteRule ^(/*)$  http://192.168.1.20/examples$1
    Voilà, bonne soirée ^^.
    Dernière modification par Invité ; 29/04/2013 à 20h02.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Dernière petite chose, pourriez vous m'expliquer pourquoi vous avez deux workers sur des ports différents et l'utilité d'en avoir deux s'il vous plait ? L'alias ne ridirige pas vers des répertoires du genre /vars/www/images,... ? Et l'accès vers ces données via l'application J2EE ne se fait elle pas avec des liens du genre : http://localhost:XXX/monappli/static/tutu.jpeg ?.Après, je m'interroge, sur la partie des JkUnMount. Ce serait vraiment sympa de m'expliquer leur utilité^^ (cela ne serait il pas pour séparer l'alias et donc les repertoires en question du traitement par mod_jk et donc la recherche dans l'application deployée sur tomcat ? Le loadbalencer est lié à cette opération ou au fait que l'on a deux applicatiions ?).

    En tout cas, merci pour l'aide depuis le départ ^^.

    Cordialement,

    Naia
    Dernière modification par Invité ; 29/04/2013 à 20h49.

  14. #14
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Bonjour,

    Nous avions 2 workers pour la simple raison que nous faisions du loadBalancing avec 2 serveurs d'application. Quand un était occupé l'autre prenait aussitot la main. Et Apache servait les ressources statiques.Dans ton cas t'en aurais peut être pas besoin, mais ça peut toujours te servir demain.
    Le jk_Unmount décharge un de tes workers d'une ressource.Laquelle sera prise en charge par Apache
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Donc techniquement, je vais utiliser le jk_unMount même si je n'ai qu'une seule application. Cela me servira a décharger tout ce qui contient dans l'url : /mon_appli/static. Mais techniquement, l'appel des données se fait via un url complet (avec par exemple http://localhost) ou tout simplement via un chemin du type : ../dossier/fichier ?

  16. #16
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Si tu n'as pas l'utilité de load balancer, tu n'as pas besoin de worker simplement pour gérer les parties statiques de ton application.

  17. #17
    Invité
    Invité(e)
    Par défaut
    Mais il faut quand meme que je fasse le unmount sur l url vers les ressources statiques je suppose ? Et pour l'appel des images dans une jsp située dans l application deployée par exemple, j utilise un url complet ou un chemin local ?

  18. #18
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Oui effectivement, mais j'utilise plutot le mod proxy que le mod jk.

  19. #19
    Invité
    Invité(e)
    Par défaut
    Arf, qu est donc le mod_proxy ?

  20. #20
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    C'est un peu le meme but que le mod jk, permettre à apache de relayer les requetes a un autre serveur. C'est à priori un peu moins performant que le mode jk, mais c'est plus simple.

Discussions similaires

  1. Serveur java pour communique avec mysql ?
    Par AsmCode dans le forum JDBC
    Réponses: 2
    Dernier message: 15/02/2008, 20h21
  2. Serveur gratuit pour programmer en J2EE
    Par tigzirt dans le forum Java EE
    Réponses: 3
    Dernier message: 01/01/2007, 22h35
  3. Ajouter une librairie pour php sur un Serveur dédié
    Par tchoumak dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 28/06/2006, 22h22
  4. [TomcaT]Config une appli J2EE avec tomcat/apache sous linux
    Par kameha dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 31/03/2006, 15h05
  5. Serveur dedie pour developpeurs ?
    Par rozwel dans le forum Hébergement
    Réponses: 5
    Dernier message: 11/01/2006, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo