Académique Documents
Professionnel Documents
Culture Documents
Contents
▪ 1 Introduction
▪ 1.1 Scénario 1
▪ 1.2 Scénario 2
▪ 2 Installation
▪ 3 Configuration
▪ 3.1 Scénario 1
▪ 3.1.1 Debian
▪ 3.1.2 OpenBSD
▪ 3.1.3 PuTTY : Tunneling SSH
▪ 3.2 Scénario 2
▪ 3.2.1 Tomcat
▪ 3.2.2 Apache
▪ 4 Ressources
1 Introduction
Avec le mod_proxy d'Apache, il y a plusieurs cas d'utilisation. Je vais donc proposer
ici 2 scénarios.
1.1 Scénario 1
Alors voila ! je suis dans une école d'informatique où (comme dans beaucoup
d'écoles) seul le port 80 est ouvert et le cours n'est pas toujours intéressant.
Que faire donc pour pouvoir accéder a son serveur en SSH, jouer a world of warcraft
ou encore télécharger comme un porc sur la mule.
Et bein Uncle Tom l'a un super patern pour toi qui veux breaker les laws : le APACHE
MOD_PROXY PLATINUM EDITION !
Ici nous travaillons sur Debian (ouais mdame) mais la configuration est sensiblement
la même sur les autres system tant que vous utilisez le mod_proxy de Apache2
1.2 Scénario 2
Je souhaites ici rediriger un flux entrant sur mon port standard (80) vers une
application (sur la même machine ou non) en faisant de la réécriture d'URL.
L'avantage c'est qu'avec le mod_proxy, point besoin d'utiliser RewriteEngine & Co !
Le module proxy est capable de se charger d'une bonne partie de la réécriture et
notamment de cacher le numéro du port (pratique pour les applications tournant sur
tomcat).
1 of 7 10/3/23, 16:56
Proxy : Créer un proxy avec Apache - Deimos.fr / Bloc... https://wiki.deimos.fr/Proxy_:_Cr%C3%A9er_un_proxy...
2 Installation
aptitude
a2enmod
a2enmod proxy_connect
a2enmod proxy_http
a2enmod proxy_html
3 Configuration
3.1 Scénario 1
3.1.1 Debian
Tout d'abord nous allons configurer mod proxy en question. Voici mon fichier
"/etc/apache2/mods-available/proxy.conf" détaillé :
/etc/apache2/mods-available/proxy.conf
2 of 7 10/3/23, 16:56
Proxy : Créer un proxy avec Apache - Deimos.fr / Bloc... https://wiki.deimos.fr/Proxy_:_Cr%C3%A9er_un_proxy...
<IfModule mod_proxy.c>
#On autorise les requêtes de type proxy
ProxyRequests On
#On autorise le serveur à répondre à ces requêtes
ProxyVia On
#On autorise les requêtes proxy en destination du port 22, 80 et 443
AllowCONNECT 22
AllowCONNECT 80
AllowCONNECT 443
#On autorise le proxy à destination de n'importe quelle adresse
# (Pour restreindre qu'a une seule adresse il faut mettre quelque chose comme
#"<Proxy google.fr>" ou encore "<Proxy 88.191.31.151>")
<Proxy *>
# Nous allons restreindre l'accès par mot de passe
AllowOverride AuthConfig
AuthName "Proxy Auth"
AuthType Basic
# Le fichier htpasswd à utiliser
AuthUserFile /etc/apache2/.htpasswd-proxy
# seuls les utilisateurs authentifiés ont accès
Require valid-user
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
</IfModule>
htaccess
cd /etc/apache2/mods-enabled/
ln -s ../mods-available/proxy.load .
ln -s ../mods-available/proxy.conf .
ln -s ../mods-available/proxy_connect.load .
ln -s ../mods-available/proxy_http.load .
/etc/init.d/apache2 restart
3.1.2 OpenBSD
3 of 7 10/3/23, 16:56
Proxy : Créer un proxy avec Apache - Deimos.fr / Bloc... https://wiki.deimos.fr/Proxy_:_Cr%C3%A9er_un_proxy...
/var/www/conf/httpd.conf
<VirtualHost _default_:3128>
<IfModule mod_proxy.c>
ProxyRequests On
ProxyVia On
<Directory proxy:*>
Order deny,allow
Allow from all
</Directory>
</IfModule>
</VirtualHost>
apachectl stop
apachectl start
Personnellement, mon Apache est bindé sur un port que seul le réseau local et les
personnes connectées en VPN peuvent accéder.
Bon c'est super on a un beau proxy mais comment en tirer pleinement profit.
Nous allons utiliser PuTTy afin de nous simplifier la vie, car c'est un des rare client
SSH multiplateforme qui offre toutes les fonctions dont nous avons besoin :
Tunneling + Proxy HTTP
4 of 7 10/3/23, 16:56
Proxy : Créer un proxy avec Apache - Deimos.fr / Bloc... https://wiki.deimos.fr/Proxy_:_Cr%C3%A9er_un_proxy...
Voici comment je configure mon client putty pour pouvoir jouer a World Of Warcraft.
{Menu "Session"}
{Menu "Proxy"}
cliquer sur "add" pour en ajouter d'autres ex. 5900:vnc ; 143:imap ; 25:smtp (pour
WoW, il ne faut pas oublier celui ci)
That's good ! ca veut dire "c'est bon" en anglais ... pour World Of Warcraft, il ne reste
plus qu'a modifier le fichier "realmlist.wtf" et mettre
Comme dirait une célèbre philosophe : "Et c'est parti pour le show !"
3.2 Scénario 2
Je vais prendre le cas ici un outil "myapp" tournant sur Tomcat, port 8080. J'ai donc
besoin dans un premier temps de dire à Tomcat qu'il va se faire "proxifier", puis je
vais avoir a mettre en place la partie proxy sur Apache.
3.2.1 Tomcat
/etc/tomcat6/server.xml
5 of 7 10/3/23, 16:56
Proxy : Créer un proxy avec Apache - Deimos.fr / Bloc... https://wiki.deimos.fr/Proxy_:_Cr%C3%A9er_un_proxy...
On indique à Tomcat que notre site sera accessible depuis myapp.mycompany.lan sur
le port 80.
Vous pouvez redémarrez votre tomcat maintenant.
3.2.2 Apache
/etc/apache2/mods-enabled/proxy.conf
<IfModule mod_proxy.c>
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
#Allow from .example.com
</Proxy>
</IfModule>
Puis le configurer pour notre site en question. Nous utiliserons ici un VirtualHost
pour notre applicatif :
/etc/apache2/sites-enabled/my_app
<VirtualHost myapp.mycompany.lan:80>
ServerName http://myapp.mycompany.lan
ServerAlias myapp.mycompany.lan
ServerAdmin deimos@deimos.fr
DocumentRoot /mnt/myapp/datas/www
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
LogLevel warn
ServerSignature On
ProxyPass / http://localhost:8080/
6 of 7 10/3/23, 16:56
Proxy : Créer un proxy avec Apache - Deimos.fr / Bloc... https://wiki.deimos.fr/Proxy_:_Cr%C3%A9er_un_proxy...
ProxyPassReverse / http://localhost:8080/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
La partie ProxyPass permet de dire ou doit rediriger le proxy. Ici le proxy apache et
tomcat tournent sur la même machine, c'est pourquoi les URL pointent sur le
localhost.
4 Ressources
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html
7 of 7 10/3/23, 16:56