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 :

Apache2 et Tomcat6 via jk_mod


Sujet :

Tomcat et TomEE Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 23
    Par défaut Apache2 et Tomcat6 via jk_mod
    Salut à tous.
    Je viens de mettre en place un serveur pour nos "applications web".
    Ce dernier utilisant Apache2 ainsi que Tomcat6 (Pour les applications basées Java).

    J'ai réussi à mettre en place une configuration qui semble fonctionner "Pas trop mal".
    Cependant, et étant la première fois que je réalise ce type d'installation, j'aimerai votre avis
    sur la façon dont a été réalisée la mise en place. Ceci afin de savoir si certaine chose sont totalement déconseillées 8)

    J'ai donc installé apache2 ainsi que tomcat6.
    Afin d'obtenir une arborescence tomcat "simplifiée" j'ai créer un dossier /opt/tomcat6.
    Dans cette dernière j'ai créé différent lien ainsi que des dossiers pour mes différentes
    futur Vhost.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    lrwxrwxrwx 1 root root   23 Aug 19 13:14 bin -> /usr/share/tomcat6/bin/
    lrwxrwxrwx 1 root root   13 Aug 19 13:14 conf -> /etc/tomcat6/
    drwxr-xr-x 3 root root 4.0K Aug 20 11:16 Vhost1
    lrwxrwxrwx 1 root root   23 Aug 19 13:14 lib -> /usr/share/tomcat6/lib/
    lrwxrwxrwx 1 root root   17 Aug 19 13:15 logs -> /var/log/tomcat6/
    drwxr-xr-x 3 root root 4.0K Aug 20 09:01 Vhost2
    lrwxrwxrwx 1 root root   25 Aug 19 13:14 webapps -> /var/lib/tomcat6/webapps/
    J'ai ensuite configurer mon fichier /etc/libapache2-mod-jk/workers.properties. Ceci afin de déclarer mes Workers (Un pour chaque application). Ici j'ai un doute, est-il possible de ne déclarer qu'un Worker? De ma vision nom. Une application = un port d'utilisation.

    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
    workers.tomcat_home=/usr/share/tomcat6
    workers.java_home=/usr/lib/jvm/java-6-sun
    ps=/
    worker.list=Vhost1, Vhost2
    worker.Vhost1.port=8009
    worker.Vhost1.host=localhost
    worker.Vhost1.type=ajp13
    worker.Vhost1.lbfactor=1
    worker.loadbalancer.type=lb
    worker.loadbalancer.balance_workers=Vhost1
     
    worker.Vhost2.port=8010
    worker.Vhost2.host=localhost
    worker.Vhost2.type=ajp13
    worker.Vhost2.lbfactor=1
    worker.loadbalancer.type=lb
    worker.loadbalancer.balance_workers=Vhost2
    Une fois le fichier Worker complet, j'ai modifier le fichier /opt/tomcat6/conf/server.xml. Ceci afin de configurer mes deux Vhosts ainsi que mes "Connector".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
                    <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />
     
                    <Engine name="Catalina" defaultHost="localhost">
                            <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
     
                            <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>
                            <Host name="Vhost1" appBase="/opt/tomcat6/Vhost1" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
                                    <Alias>Vhost1</Alias>
                            </Host>
                            <Host name="Vhost2" appBase="/opt/tomcat6/Vhost2" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
                                    <Alias>Vhost2</Alias>
                            </Host>
    J'ai ensuite décompresser mes deux fichiers WAR dans un dossier root: Vhost1/ROOT et Vhost2/ROOT.
    J'ai réalisé, du côté de apache2, la création d'un fichier pour chaque Vhost. J'ai ajouté pour chacun la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JkMount /* WorkerConfiguré
    J'ai loader les deux nouveaux fichier de Vhost du côté de apache2. (Le module lui était déjà loader).
    J'ai finalement redémarrer les services (Apache2 et Tomca6).

    Les sites précédemment configuré sous Apache2 fonctionne toujours très bien. Les deux applications sous Tomcat6 sont démarrée et fonctionnel. Dans l'ensemble la procédure semble fonctionnel. Cependant au vue des nombreux petits tutoriaux trouvé sur internet, aillant chacune leur "Méthode", je me pose la question de savoir si mon installation est "Correcte".

    En espérant que vous pourrez me fournir des conseilles supplémentaires.
    Meilleures Salutations,

    ZerosCool

  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
    Par défaut
    C'est une facon de faire, moi j'installe physiquement deux instances différentes de mon serveur d'application, et je les configure en loadBalancing derrier apache, mais je ne saurai qu'elle est la meilleure méthode. par contre ce que je pourrai te conseiller pour bien profiter de la mise en place de ton architecture c'est de configurer pour servir toutes tes ressources statiques. il te suffirait de faire un jkUnmount sur ton loadBalancing et faire une redirection de tout ce qui commence par /static/ vers ton répertoire de static. si l'idée te va déjà je te montre techniquement ce que je fais.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 23
    Par défaut
    Hello,
    Je viens de voir, il me semble, une erreur de ma part déjà:
    • worker.Vhost1.host=localhost

    En lieu est place de l'adresse de mon "sous-domain". Bon dans la finalité de la chose sa semble ne pas poser de problème.

    Deuxième chose qui me semble étrange c'est mon utilisation du loadbalancing. Je l'avais laissé suite aux divers documents trouvé (Erreur de ma part). Mais au final je fais de la répartition sur quoi exactement ?

    Est-il possible d'utiliser un seul Worker pour mes divers Vhost? Où dois-je nécessairement créer un worker ainsi qu'un connecteur pour chaque entrée?

    Si j'ai bien comprit, JkUnMount concerne les divers partie "Static". Page HTML static ou un dossier d'image par exemple? Qu'il n'est pas nécessaire d'envoyer à Tomcat.

    Mes questions peuvent sembler un peu stupide, mais c'est la première fois que je fais l'installation de Tomcat (Et de plus avec liaison Apache2).

    Salutations.

  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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worker.Vhost1.host=localhost
    Ca me parait convenable, tu mets une ip ou un nom de machine.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mais au final je fais de la répartition sur quoi exactement ?
    Ton objet loadBalancing géré par apache se chargera de repartir les differentes quetes qui lui son soumises au serveur disponible.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Est-il possible d'utiliser un seul Worker pour mes divers Vhost?
    Un worker par vhost.
    De maniere générale c'est pour decharger d'un serveur une ressource. En particulier je l'utilise dans des architectures comme la tienne pour decharger mes serveurs d'applications de tout ce qui est ressources statiques (css, js,images, etc...)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 23
    Par défaut
    Alors après changement de l'entrée "Host", une seul entrée loadbalancing et ajout des JkUnMount j'arrive à ceci.


    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
     
    # Available Worker
    worker.list=Vhost1, Vhost2
     
    # Work Klaros
    worker.klaros.port=8009
    worker.klaros.host=172.20.1.48
    worker.klaros.type=ajp13
    worker.klaros.lbfactor=1
     
    worker.sqlpower.port=8010
    worker.sqlpower.host=172.20.1.48
    worker.sqlpower.type=ajp13
    worker.sqlpower.lbfactor=1
     
    worker.loadbalancer.type=lb
    worker.loadbalancer.balance_workers=klaros, sqlpower
    Mes deux connecteurs (Un par Worker et donc par Vhost)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />
    Et finalement Mes fichiers de Vhost (Côté Apache)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    <VirtualHost *:80>
            ServerAdmin m.erni@symbion-medical.com
            ServerNAme klaros
     
            JkMount /* klaros
            JkUnMount /css/* kalros
            JkUnMount /pages/images/* kalros
     
            ErrorLog ${APACHE_LOG_DIR}/klaros/error.log
            LogLevel warn
            CustomLog ${APACHE_LOG_DIR}/klaros/access.log combined
    </VirtualHost>
    EDIT: Concrètement dans mon cas, le loadbalancing n'est pas utile. Vu que j'utilise un Worker par Vhost.

  6. #6
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worker.list=Vhost1, Vhost2
    n'yaurait il pas une erreur ici? c'est pas par hasard klaros et sqlpower attendus?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JkUnMount /css/* kalros
            JkUnMount /pages/images/* kalros
    Le plus simple c'est de mettre à la racine d'un répertoire static toutes tes static, comme ca t'auras un seul jkUnMount, et c'est plus propre ainsi.
    Autre chose en l'etat il faut que tu rajoutes une primitive de redirection, il faut dire à apache de rediriger les demandes de static :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Alias "/static/ ton_chemin_absolu_vers_static

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Couplage Apache2 et Tomcat6
    Par liquideshark dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 30/07/2009, 18h15
  2. [TOMCAT6]Start/Stop context via .bat
    Par tanith dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 19/06/2009, 08h45
  3. Installation Apache2+Tomcat6 sur Ubuntu810
    Par devyan dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 23/02/2009, 15h15
  4. Réponses: 5
    Dernier message: 05/11/2008, 09h47
  5. Interdire l'acces d'apache2 via l'IP ?
    Par byloute dans le forum Apache
    Réponses: 1
    Dernier message: 21/11/2006, 16h14

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