• # \_o<

    Posté par . En réponse au message deux serveurs web pour une même IP ?. Évalué à 0.

    Je ne vais pas suivre ton raisonnement tortueux, car tu as mal pose la question. Je vais directement soumettre la meilleure solution pour ton cas.

    je vais abreger 'dyndns.org' a 'd.o'. Mes machines auront aussi des noms courts. 'p' pour la passerelle, 's' pour le server web local.

    j aborde le probleme sous l ordre chronologique ou je construit la solution, qui est aussi l ordre dans lequel les requettes sont resolues.

    1: mettre en place une passerelle p, capable de mettre a jour elle meme son ip PUBLIQUE pour le nom p.d.o . Elle seule peut metre a jour ce nom, aucune autre du ton reseau local ne peut le faire. Si tu as un routeur hard, et qu il ne supporte pas cette fonction, lache l affaire. Je peux techniquement contourner le probleme, mais c est tres complique, et peu fiable.

    2: acheter un domaine moi.com, qui devra etre resolu et gere par une entite disposant d une IP fixe. Je crois que Gandi et www.granitecanyon.com peuvent faire cetto operation simple. Quand tu enregistre ton domaine, tu met alors l IP de Gandi ou Granite comme resolveur de moi.com.

    3: mettre en place un 'CNAME' sur la regle:

    IN domain moi.com
    soleil CNAME p.d.o
    lune CNAME p.d.o

    quand un client tape un nom de site, ce nom doit etre resolu. Dans notre cas, ce nom est un alias vers un autre - oui c est authorise -. Le navigateur cherche donc soleil.moi.com, et passe la requette de resolution a son system hebergeur (la couche IP du dit system). La couche IP fera un dig, la reponse du dig sera donnee par Granite, et dira que c est un CNAME vers p.d.o. La meme couche IP ira alors chez dyndns, et demandra la resolution pour p.d.o. Dyndns donnera ton IP courante.

    IL EST IMPOSSIBLE DE FAIRE RESOUDRE UN NOM POUR UNE IP LOCALE SI TON FOURNISSEUR D ACCES NE TE FOURNIS QU UNE SEULE IP PUBLIQUE. - pas de contournement possible.

    Le navigateur client as desormais ton IP publique.

    La, il peut se passer deux choses.

    -A- tu peux mettre tous tes sites web sur un server dedie, et configure apache pour gerer des vhosts, c est le plus simple.

    4: la machine p ecoute le port 80, et redirige toutes les requettes entrantes vers l ip LOCALE du dit server dedie. C est une stupide regle IPTABLE, de la forme
    iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2
    ou ppp0 est le nom de l interface publique de la passerelle, et 192.168.1.2 l ip locale du server dedie.

    5: le server dedie local est un apache classique, ecoutant sur le port 80. Apache doit alors gerer les vhosts. Un exemple vaut mieux que mille mots, je te colle ce que j ai:

    Listen 80
    Listen 443
    NameVirtualHost *:80
    <VirtualHost *:80>
    DocumentRoot "/var/www/paste"
    ServerName paste.doublehp.org
    RewriteEngine on
    RewriteRule \/([0-9]*)$ /pastebin\.php\?show\=1ドル [NE]
    <Directory "/var/www/paste">
    DirectoryIndex pastebin.php
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

    </VirtualHost>
    <VirtualHost *:80>
    DocumentRoot "/var/www/coco"
    ServerName coco.doublehp.org
    RewriteEngine on
    <Directory "/var/www/coco">
    DirectoryIndex
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

    </VirtualHost>

    NameVirtualHost *:443
    <VirtualHost *:443>
    DocumentRoot "/var/www/pipo"
    ServerName pipo.doublehp.org
    <Directory "/var/www/pipo">
    DirectoryIndex
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all

    </VirtualHost>

    (et il est toujours impossible de coller du texte formatte sur ce site ****** )

    il est possible de faire different, mais ÇA ^^ c est ce qui marche chev moi. Certaines personnes mettent
    <VirtualHost 192.168.1.2:443>
    ce qui pose probleme des que tu change l ip locale de la machine. J ai la deux sites web sur port 80, et un sur 443 (evidement, pour le 443 il faut la regle IPTABLES qui va bien sur le routeur.)

    Ne tamuse pas a visiter les 3 sites, seul paste existe vraiment, les deux autres, j ai du changer leur nom dans cet exemple, car ces sites doivent rester secrets.

    -B- tu veux avoir un site web par machine locale. CELA EST PROBLEMATIQUE. Car la passerelle n as qu une seule IP, et le nom etant gere sur une couche OSI different de l IP, la passerelle ne sais pas a quelle machine le client veut parler. Je peux contourner ca.

    4: on commence par IPTABLES:
    iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
    iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 81 -j DNAT --to-destination 192.168.3.2:80

    5: tu met en place 192.168.1.2 avec un apache classique, qui ne gere qu un seul site. ce site est accessible via le nom ordinaire http://soleil.moi.com/(...)

    6: tu met en place sur 192.168.1.3 un apache classique, sur port 80, et ce site sera accessible via l adresse http://lune.moi.com:81/(...)

    une requette sur http://lune.moi.com/(...) aboutira evidement sur 192.168.1.2, et au mieux, si tu te misere dans apache, tu pourra afficher une page d erreur, ou si tu est TRES DOUE, faire une redirection web sur lune.moi.com:81

    Une requette web sur soleil.moi.com:81 aboutira evidement sur 192.168.1.3.

    La solution B est evidement moins esthetique, car oblige a specifier le port 81 SYSTEMATIQUEMENT pour le site lune ... et tous les sites autres que soleil.

    **************************************************************

    Si tu n y connais rien aux reseaux, ne tente rien d exotique, et applique une de mes deux solutions.

    Entre autre, il est impossible de demander a ta passerelle de faire la difference entre deux requettes web de domaines differents, CAR TU AS UNE SEULE IP PUBLIQUE.