2009-05-28 16 views
3

Comment puis-je configurer un proxy inverse avec mod_proxy sans rediriger vers un autre serveur ou IP? Ce sera un environnement hôte virtuel. La raison pour laquelle je veux faire cela est que mod_proxy gère la communication avec le navigateur du client libérant ainsi les processus du serveur web pour répondre à la demande suivante au lieu de nourrir le navigateur du client. Ceci est particulièrement important lorsque vous utilisez des modules de langue tels que mod_php avec MPM Prefork. Le flux que j'essaie d'atteindre est: 1. Le trafic se résout en www.mondomaine.com sur le port 80. 2. Le proxy envoie la requête au serveur Web. 3. Le serveur Web renvoie la réponse au proxy et se déconnecte du proxy. 4. Le proxy alimente le navigateur client.Comment puis-je configurer un proxy inverse avec mod_proxy sans rediriger?

Une fois que cela fonctionne je veux ajouter nginx à la même adresse IP mais pour le port 81 et les demandes d'image proxy à nginx sur le même serveur. Je ne veux pas que nginx manipule le proxy et je ne veux rien du FCGI. Je veux que mon standard Apache mod_rewrite et .htaccess fonctionnent.

Merci tonnes!

+0

Je pense que ProxyPassReverse est la partie qui vous manque. – DevelopingChris

Répondre

3

Vous redirigez simplement vers l'hôte local sur un port différent? Organisez votre application sur le port 8080, et utiliser mod_proxy de transmettre les demandes:

ProxyPass /foo http://localhost:8080/foo 
ProxyPassReverse /foo http://localhost:8080/foo 

Cela peut être utile si vous avez des serveurs d'applications qui sont des requêtes à traiter et que vous voulez plusieurs instances combinées sur une seule machine. Vous pouvez utiliser un port par serveur d'applications. Je ne sais pas si ce serait vraiment plus rapide que d'utiliser directement mod_php. Les demandes de proxy ajoutent également des frais généraux.

+0

Je pense que c'est parfait. Je ne pensais pas qu'Apache puisse écouter sur plusieurs ports. Le fait qu'il soulage ou non toute charge dépend du temps passé par les processus mod_php à alimenter le navigateur et de l'impact de la persistance. Si la plupart des requêtes tiennent dans le tampon socket, alors Apache ne fait pas la communication "baby sitting" de toute façon, le noyau est, et je ne peux pas faire mieux que cela. Le proxy me permet également d'essayer nginx pour le contenu statique. Cela peut aider. Le cache PHP fonctionne très bien. Après ces réglages, il ne reste plus que lingerd, buffers, CPU et RAM. – user113468

0

Assurez-vous d'utiliser également la charge de ces 2 modules

LoadModule proxy_module bin/mod_proxy.so 
LoadModule proxy_http_module bin/mod_proxy_http.so 

ProxyPass /TeamCity http://localhost/TeamCity 
ProxyPassReverse /TeamCity http://localhost/TeamCity