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

Réseau Discussion :

Appel de 2 programmes différents pour un même port selon le nom de domaine


Sujet :

Réseau

  1. #1
    Membre confirmé Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Points : 519
    Points
    519
    Par défaut Appel de 2 programmes différents pour un même port selon le nom de domaine
    Bonjour,

    Je loue un serveur web sur lequel tourne déjà Apache et Tomcat (derrière Apache pour un domaine en particulier grâce à mod-jk).
    Cependant je voudrais y ajouter un site en Node.js également sur le port 80. Je pourrais le placer derrière Apache comme je le fais pour Tomcat, mais je perdrai tout l'avantage d'une appli Node.js en augmentant énormément la latence.

    Donc, existe-t-il un moyen de détourner les connexions normalement destiné à Apache pour un domaine en particulier ? Je ferais tourner Node.js sur le port 8080.

    Peut-être avec iptables ? (si c'est le cas il faudra que je m'y remette puisque je n'y ai pas touché depuis 2005)

    Merci.

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 437
    Points : 43 078
    Points
    43 078
    Par défaut virtualhost
    Regardes du coté de ton fichier virtualhost :

    Listen 80 8080

    <VirtualHost *:80>
    DocumentRoot /www/site1
    ServerName www.site1.com
    </VirtualHost>

    <VirtualHost *:8080>
    DocumentRoot /www/site2
    ServerName www.site2.com
    </VirtualHost>
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre confirmé Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Points : 519
    Points
    519
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Regardes du coté de ton fichier virtualhost :

    Listen 80 8080

    <VirtualHost *:80>
    DocumentRoot /www/site1
    ServerName www.site1.com
    </VirtualHost>

    <VirtualHost *:8080>
    DocumentRoot /www/site2
    ServerName www.site2.com
    </VirtualHost>

    Ce que tu me dis là c'est pour qu'Apache écoute sur 2 ports différents selon le domaine ; moi ce que je veux c'est que pour un domaine donné on utilise un autre logiciel serveur qu'Apache (Node.js dans ce cas précis).
    Cela ne peut donc pas être dans un des fichiers de configuration d'Apache puisque le routage doit se faire avant.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,

    Citation Envoyé par T`lash Voir le message
    Peut-être avec iptables ?
    oui, je pense aussi que ça devrait être possible avec iptables.

    Voici un premier jet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -A PREROUTING -p tcp -m tcp -i eth0 --dport 80 -m string --string domain1.com --to-destination 192.168.1.1:80
    -A PREROUTING -p tcp -m tcp -i eth0 --dport 80 -m string --string domain2.com --to-destination 192.168.1.1:8080
    en supposant que 192.168.1.1 est l'IP qui héberge tes hosts (Apache.domain1.com pour le port 80, Nodejs.domain2.com pour le port 8080).

    Il faudra également le combiner avec les règles usuelles utilisées pour maintenir les connexions TCP déjà établies.

    Steph

  5. #5
    Membre confirmé Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Points : 519
    Points
    519
    Par défaut
    Merci IP_Steph pource début de piste.

    À partir de ça j'ai écrit une règle qui devrait fonctionner (j'ai mis le port 10000 pour envoyer vers webmin dans mes tests) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -t nat -A PREROUTING -p tcp -m tcp -i eth0 --dport 80 -m string --to 70 --algo bm --string 'mondomaine.fr' -j REDIRECT --to-port 10000
    Cependant ce n'est pas le cas. Pourtant les deux règles suivantes fonctionnent correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -A INPUT -p tcp -m tcp -i eth0 --dport 80 -m string --to 70 --algo bm --string 'mondomaine.fr' -j DROP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -t nat -A PREROUTING -p tcp -m tcp -i eth0 --dport 80 -j REDIRECT --to-port 10000
    donc match sur le domaine fonctionne avec filter/INPUT, mais pas avec nat/PREROUTING. Là je ne comprends pas tout.

  6. #6
    Membre confirmé Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Points : 519
    Points
    519
    Par défaut
    Un pro d'iptables a-t-il une solution à me donner ?

Discussions similaires

  1. Deux écritures différentes pour un même programme
    Par while.dede dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 13/03/2015, 14h49
  2. [Access][ADO] : tri différent pour un même Order By
    Par QuickSave dans le forum Bases de données
    Réponses: 15
    Dernier message: 03/04/2007, 08h48
  3. Peut-on avoir deux fichier .htaccess pour 2 urlrewriting différents pour 1 même site
    Par JackBeauregard dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 30/09/2006, 08h35
  4. Réponses: 1
    Dernier message: 16/06/2006, 14h17
  5. Icone différente pour une même extention ?!
    Par NicolasJolet dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 09/03/2006, 10h24

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