Serveur Apache et Proxy sur le même port 80

Serveur Apache et Proxy sur le même port 80 - Installation - Linux et OS Alternatifs

Marsh Posté le 04-07-2007 à 10:08:56    

Salut,
 
voilà j'ai actuellement un serveur Debian qui fait tourner Apache 1.3 sur les port 80 et 443.
J'ai deux virtual hosts sur ce même port (admettons a.no-ip.org et b.no-ip.org).
 
J'ai également un proxy Squid (configuré par défaut) sur le port 3128.
 
Mon souci est le suivant : j'aimerais pouvoir faire tourner le proxy également sur le port 80 (avec un troisième DNS), en même temps qu'Apache.
Le résultat escompté serait :
a.no-ip.org:80 ==> mon site web n°1 (comme avant)
b.no-ip.org:80 ==> mon site web n°2 (comme avant)
 
c.no-ip.org:80 ==> le proxy
 
L'idée est de pouvoir me servir du proxy pour 'sortir' sur n'importe quel autre port (ssh, vnc, ...). Il m'arrive en effet (trop) souvent que les endroits d'où je me connecte en déplacement n'autorisent que le port 80.
 
J'ai bien essayé de trouver de l'info mais j'ai vite été noyé sous une tonne de concepts différents (apache mod-proxy, reverse proxy (?), proxy pour filtrer et répartir la charge d'apache, ...)
 
Si vous pouviez juste me donner une piste pour savoir dans quelle direction chercher...
 
MErci d'avance :)

Reply

Marsh Posté le 04-07-2007 à 10:08:56   

Reply

Marsh Posté le 04-07-2007 à 12:13:34    

module mod-proxy d'apache qui va te permettre de faire ce que l'on appelle du reverse proxy.
 
Le reverse proxy c'est se faire passer pour le serveur aux yeux du client.
Dans une archi classique tu as ca :
ton navigateur <========> le serveur Web
 
En reverse proxy tu as :
ton navigateur <======> reverse proxy <======> serveur web
 
Au lieu de t'adresse directement au serveur, tu t'adresses au reverse proxy (apache avec le module qui va bien dans ton cas) qui va, pour toi, demander la vraie page au vrai serveur (ton squid dans ton cas), pour ensuite te la renvoyer

Reply

Marsh Posté le 04-07-2007 à 12:26:48    

salut fighting_falcon, et tout d'abord merci pour ta réponse.
 
Le problème est que dans mon cas je ne souhaite pas utiliser le proxy pour faire du web simple (comprendre GET sur des pages HTMLs), mais utiliser le proxy avec la moéthode HTTP CONNECT pour faire du tunnelling (d'où les protocoles mentionnés dans mon premier post : ssh, vnc, ...). Or ces tunellings vont par définition durer un certain temps.
 
Dans ce cas là, mon serveur apache (qui joue le rôle de 'forwarder') risque de foirer mes connexions (enfin c'est ce que j'imagine). Je vois deux raisons potentielles:
 
- apache ne va pas forwarder les données émises/reçues en temps réel, mais attendre la fin de la connexion (ie. la fin de la réponse rendue, ce qu'il croit être une bête page web) avant de tout 'flusher' au client.
 
- apache a peut-être un mécanisme de timeout pour toute requête 'classique' (GET, PUT, ...) et donc couperait mon tunnel toutes les x secondes.
 
D'où l'idée, je pense, de plutôt faire l'inverse:
- mettre le proxy qui écoute sur le port 80
- si la requête est pour un des sites web, il forwarde à apache
- si la requête est pour autre chose (connect, autre site, ...), il fait normalement son boulot de proxy.
 
J'ai bon doc ?
Est-ce possible de configurer un proxy pour ça ?
Si oui ... je fais ça comment ?


Message édité par theNouk le 04-07-2007 à 12:32:09
Reply

Marsh Posté le 04-07-2007 à 13:56:46    

j'avoue que toute ta mécanique me dépasse un peu ...
 
pour les problèmes que tu évoques, honnêtement je n'en sais rien, je n'ai jamais testé
 
pour ta solution de mettre ton proxy sur le port 80, en fait il n'y aucune conf particulière, si ce n'est dire (en local sur ton serveur) que a.no-ip.org = localhost, du coup ton proxy va là aussi faire son boulot de proxy et demander la page à apache pour la renvoyer au client (en plus tu auras un cache ...)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed