Apache et Lighttpd sur le même port

Nouveau WRInaute
Bonjour :)

J'utilise Apache pour le contenu dynamique, Lighttpd pour le statique.
Apache écoute sur le port 80, Lighttpd sur le port 81. Tout fonctionne.

Le hic, c'est que pour le contenu statique, je dois passer des adresses du type : http://www.monsite.com:81/image.jpg
Chez certains utilisateurs, le firewall ne laisse pas partir des requêtes sur le port 81.

Etant donné que je dispose de deux interfaces réseau, j'aimerais envoyer les requetes de contenu dynamique sur le port 80 de la première, et les requêtes pour le contenu dynamique sur la deuxième :
http://www.monsite.com/page.php (www.monsite.com pointe vers l'ip de eth1)
http://img.monsite.com/image.jpg (img.monsite.com pointe vers l'ip de eth1)

Sur le serveur, bien sûr, je laisse lighttpd écouter sur le port 81.
J'ai donc fait une redirection avec iptables afin que lighttpd reçoive bien les requêtes :

Code:
iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j REDIRECT --to-port 81

Mais dans un navigateur, les requêtes du type "http://img.monsite.com/image.jpg" ne donnent rien (alors que http://img.monsite.com:81/image.jpg fonctionne).

Ai-je oublié une règle dans Iptables ?

Merci bcp pour votre aide !
 
WRInaute passionné
La meilleure solution est d'utiliser mod_proxy avec apache.

Dans ton http.conf tu active le module mod_proxy si tu utilise le chargement dynamique des modules, sinon tu recompile apache avec mod_proxy

ensuite danst ta configvirtualhost apache tu rajoute :

<VirtualHost ipdevotreserveur>
DocumentRoot "rootduserveur"
ServerName nomdevotreserveur
RewriteEngine On
RewriteOptions 'inherit'
RewriteRule \.(php|asp)$ - [last]
RewriteRule ^/(.*)$ http://ipdevotreserveur:81/$1 [proxy]
<Directory "rootduserveur">
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>

J'ai pris comme exemple de rediriger tous les fichiers qui ne sont pas .php ou .asp sur le port 81.

Il faut bien sur remplacer ipdevotreserveur, rootduserveur, nomdevotreserveur par les valeurs appropriées :wink:
 
WRInaute passionné
Le but de lighthttp, c'est de servir rapidement les elements statiques (en courcircuitant la lourdeur du le processus apache). Interet qui n'est pas conserve avec ta solution (dans ce cas autant servir tout avec apache).
 
Nouveau WRInaute
Merci pour votre aide.
Finalement, j'ai retenu ma solution qui fonctionne en fait :) J'avais juste mal initialité mes règles de Iptables.

Il fallait avant faire :
Code:
iptables -F
iptables -t nat -F
iptables -X

Voilà !!

(en tous cas, lighttpd est vraiment très très rapide pour le statique!!)
 
Discussions similaires
Haut