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 :

[TOMCAT 7] Tomcat ne répond pas aux requêtes venant d'une IP distante


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut [TOMCAT 7] Tomcat ne répond pas aux requêtes venant d'une IP distante
    Bonjour,

    Je viens d'installer Tomcat 7 sur un serveur distant avec pour OS Debian Squeeze dans le répertoire /opt/tomcat

    J'interroge mon serveur depuis mon pc
    http://79.xx.xx.xx:8080/

    Je n'ai aucune réponse.

    Je me connecte en SSH sur mon serveur, je lance wget http://127.0.0.1:8080/ et je télécharge un fichier index.html qui, en le lisant m'informe bien que Tomcat fonctionne correctement en local. C'est chiant pour un serveur web .

    J'ai vérifié, aucune règle IPTABLE ne filtre les requêtes distantes. J'ai beau rechercher, la configuration de tomcat est bien différente d'Apache et je ne parviens pas à trouver la directive Listen qui me permettrait de forcer Tomcat à bien écouter toutes les IP provenant du web.

    Quelqu'un sait-il où cela se paramètre ?
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  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
    Quand tu dis serveur distant, la machine de laquelle t'essaies d'acceder à ton appli est elle dans le même réseau que ton serveur hébergeant l'appli web? es tu certain que le port 8080 soit ouvert en http? as tu un apache installé sur ce serveur distant? Le fait que tu y accèdes via un wget est tout simplement le signe que ton appli répond bien en local sur le port 8080.
    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
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Bonjour DevServlet,

    Nous sommes bien d'accord. Le fait que j'y accède via lynx en tapant 127.0.0.1:8080 ou localhost:8080 est bien le signe que mon appli répond bien en local sur le port 8080. Seulement, elle ne répond pas quand je l'interroge depuis n'importe quel PC sur Internet.

    J'ai bien sûr envisagé que ma machine soit "cachée". Il s'agit d'un serveur web ayant sa propre adresse IP publique. Et sur ce serveur, j'ai un serveur Apache 2.2.16 et un serveur Tomcat 7.0.21. Le serveur Apache fonctionne parfaitement. Je peux l'interroger depuis tout ordinateur connecté au WWW.

    Quant au serveur tomcat, il ne me répond que si je l'interroge dans la boucle locale (127.0.0.1). J'ai cherché un peut partout. Je n'ai pas trouvé. J'ai édité le connecteur du fichier server.xml, j'ai vérifié mes règles de sécurité IPTABLES (vierge). Je ne trouve pas. Je ne sais pas quoi faire.

    Le problème n'est pas bloquant, car j'ai installé mod_jk. Je peux donc via un proxy interne à Apache accéder au serveur tomcat. Mais je me pose cette question par "culture générale" et j'avoue que cela m'ennuie énormément de ne pas trouver.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  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
    La plupart des serveurs ferme les ports 8080 en http, c'est une mesure de sécurité obligeant les requetes à passer par le filtre d'un serveur http comme Apache, j'ai déjà rencontré ce souci. Même si techniquement tu peux faire sauter cette contrainte, perso je te le déconseille, si t'as du temps tu fais un couplage entre Apache et ton serveur tomcat, puisque tu as mod_jk de base d'installé, et l'utilisateur distant accèdera à appli mais en ne spécifiant aucun port, puisque par défaut ce sera Apache sur le port 80 qui répondra, et selon ta conf, Apache redirigera à tomcat à son ecoute, et pour l'utilisateur final il n'y verra que du feu
    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
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Je viens de couper tous mes services sauf Apache. Je l'ai reconfiguré sur le port 8080 et en effet, ça marche en local, pas à distance. Je pense qu'il y a d'autres points de configuration sur le serveur en lui-même. Il s'agit d'un serveur virtuellement dédié. Je vais regarder la console d'administration et contacter le support. Je laisse ce billet ouvert et reviendrait quand j'aurais la réponse, mais je sais que le soucis ne vient pas de Tomcat!

    Edit : Je confirme les ports semblent fermés :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Test des ports de 8078 à 8082 :
     
    Port 8078	Fermé	Port 8079	Fermé	Port 8080	Fermé	Port 8081	Fermé
    Port 8082	Fermé	Port 8083	Fermé	Port 8084	Fermé	Port 8085	Fermé
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  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
    Points : 3 938
    Points
    3 938
    Par défaut
    Voila un lien pour le couplage ici, si tu rencontres des soucis de configuration, n'hesites pas.
    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..."

  7. #7
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Merci, le couplage est en place et fonctionne désormais !

    J'attends de voir ce qui bloque ou ouvre des ports pour le mentionner ici.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  8. #8
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Le port 8080 est bien bloqué sur ce serveur virtuel par des règles du serveur hôte. Je pouvais toujours chercher .

    Néanmoins, avec la commande suivante, on peut savoir ce qui est ouvert ou fermé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    netstat -tanpu | grep LISTEN
     
    tcp6       0      0 :::80                   :::*                    LISTEN      13124/apache2   
    tcp6       0      0 :::8080                 :::*                    LISTEN      12084/java
    Apache et Tomcat sont accessibles via Internet. Ayant installé Mod_jk, j'écoute les conseils de DevServlet, et en modifiant le fichier server.xml, j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    netstat -tanpu | grep LISTEN
     
    tcp6       0      0 127.0.0.1:8080          :::*                    LISTEN      15071/java      
    tcp6       0      0 :::80                   :::*                    LISTEN      13124/apache2
    Le port 8080 n'est plus accessible qu'en local.

    Pour effectuer cette modification, j'ai modifié ces lignes dans server.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000" 
                   redirectPort="8443" />
    en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <Connector port="8080" protocol="HTTP/1.1" addresses="127.0.0.1"
                   connectionTimeout="20000" 
                   redirectPort="8443" />
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

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

Discussions similaires

  1. Apache ne répond pas aux commandes
    Par theksp25 dans le forum Apache
    Réponses: 0
    Dernier message: 20/03/2015, 20h37
  2. Sympa réponds pas aux requétes administratives
    Par Cync2009 dans le forum Linux
    Réponses: 4
    Dernier message: 03/06/2011, 11h52
  3. GUI indiscipliné ne répond pas aux actions
    Par smarecha dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 03/11/2006, 09h51

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