Forum Linux.général Port forwarding

Posté par  .
Étiquettes : aucune
0
21
déc.
2007
Salut a tous,

Je cherche a faire tourner sur une machine plusieurs linux vserver.

Le contexte : le seveur hote fait tourner X vserver.
Le serveur hote à une IP publique.
Les vservers ont tous une IP locale en 192.168.1.X
Tous les vservers font tourner du apache/php/mysql

Je cherche donc à faire du port forwarding sur le serveur hote, pour rediriger les paquets arrivant sur le port 80 sur le bon vserver (en fonction de l'url demandée).

C'est possible de faire ca via la table de routage du noyau ?
  • # Reverse proxy ?

    Posté par  . Évalué à 1.

    Salut,

    Je ne pense pas que l'on puisse faire ce que tu veux : il faut accéder à la couche applicative pour rediriger en fonction de l'URL demandé, alors que le routage noyau reste cantonné aux couches basses (ethernet, IP, UDP et TCP, ...).

    Un moyen de réaliser tout de même ce que tu veux serait d'installer un serveur HTTP (apache) sur ta machine hôte et de faire du reverse proxy vers les différents vservers en fonction de l'URL.
    N'hésite pas à demander plus de précisions sur la façon de paramétrer çela si ça te semble obscur.

    A+
    JJD
    • [^] # Re: Reverse proxy ?

      Posté par  . Évalué à 1.

      Salut et merci pour la reponse.

      J'ai vu un peu de doc sur le mod_proxy d'apache qui semblerait faire ce que je veux.

      Par contre, ce que je n'ai pas dit plus haut, c'est que les vservers ne vont pas faire tourner que du http, mais aussi du ftp, ssh, et d'autres services reseaux suivant les demandes.

      • [^] # Re: Reverse proxy ?

        Posté par  . Évalué à 1.

        Ce sera possible de faire d'avoir faire ce que tu veux de façon transparente pour l'http... mais pour FTP/SSH/... oublie (aucune notion de machine cible dans ce protocol contrairement au HTTP/1.1 et son header Host:)

        Seule solution, avoir un port particulier (2222, 2223, 2224, ...) pour tes différents vservers.

        Par ailleurs, méfie toi de mod_proxy qui forwarde les requêtes par défaut en HTTP/1.0. Si tu as plusieurs vhost sur un même vserver, par défaut à cause du HTTP/1.0, ce sera toujours le même vhost qui sera servit.
        La solution se trouve dans la directive de mod_proxy ProxyPreserveHost.
  • # Et lighty ?

    Posté par  (site web personnel) . Évalué à 1.

    Plus léger et simple à configurer qu'apache pour ce genre de choses, lighttpd[1] et son modProxy[2] :).

    [1] http://lighttpd.net/
    [2] http://trac.lighttpd.net/trac/wiki/Docs%3AModProxy

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.