Comment rediriger vers un autre serveur? (apache et nginx)

1

J'ai un serveur Apache en cours d'exécution pour deux sites sur le port 80. Disons que le domaine est example.comet j'ai un autre domaine example2.com. Quand un utilisateur visite example.com, je veux qu'il serve ces fichiers (donc un hôte virtuel), mais quand quelqu'un essaie d'accéder au domaine example2.com(c'est sur la même adresse IP), je veux qu'il redirige vers une autre adresse IP sur le port 90 sans le visiteur sachant qu'il est sur un autre port.

Comment puis-je atteindre cet objectif?

<VirtualHost example.com:80>   
 DocumentRoot {rootdir}  
 ServerName example.com  
 ServerAlias example.com 
</VirtualHost>   
<VirtualHost *:80>   
  NoProxy .example.com  
  ProxyPreserveHost On  
  ProxyRequests Off  
  ServerName *  
  ProxyPass / http://server2:90  
  ProxyPassReverse / http://server2:90  
</VirtualHost>  

Cela ne marchera pas et essaiera d’obtenir example.comle proxy aussi, est-ce que quelqu'un sait pourquoi?

Christiaan
la source

Réponses:

4

Êtes-vous sûr de vouloir rediriger vos utilisateurs? D'après ce que j'ai compris, vous voulez que le serveur example2.com utilise un serveur proxy ailleurs. Vous pouvez configurer Apache en tant que proxy avec mod_proxy . Et vous pouvez également définir ce proxy pour un VirtualHost spécifique, voir Exemples VirtualHost d'Apache .

Par exemple, quelque chose comme ceci devrait marcher:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName example.com
<VirtualHost>
<VirtualHost *:80>
    ServerName example2.com
    ProxyPass / http://server2:90/
    ProxyPassReverse / http://server2:90/
    ProxyPreserveHost On  
    ProxyRequests Off
<VirtualHost>

assurez-vous également que mod_proxy est chargé

LoadModule proxy_module modules/mod_proxy.so
Calimo
la source
Disons que j'ai 2 serveurs différents, un apache (pour moi-même) et un nginx (pour un autre site). Les demandes arrivent sur le serveur Apache, et pour un site, elles doivent être gérées par Apache et l'autre par nginx. Mais le proxy fonctionnera. Merci pour l'aide! :)
Christiaan
Cela ne fonctionne pas encore et je l'ai édité. Pouvez-vous prendre un autre regard pour moi s'il vous plaît?
Christiaan
Vous dites "ne fonctionne pas" mais ne fournissez aucun détail sur ce qui se passe. Ce n'est pas très utile. Veuillez fournir une description pertinente de ce qui se passe, pourquoi ce n'est pas ce que vous attendiez, ainsi que des entrées de journal du serveur si nécessaire. On dirait que vous mettez en place des morceaux de code que vous n'essayez pas de comprendre. Veuillez vous reporter au manuel Apache pour plus de détails. Par exemple, la doc de of ProxyPassdit que If the first argument ends with a trailing /, the second argument should also end with a trailing / and vice versa.j'ai modifié ma réponse originale avec une configuration qui devrait fonctionner.
Calimo