Jak przekierować na inny serwer? (apache i nginx)

1

mam serwer Apache działający dla dwóch witryn na porcie 80. Załóżmy, że domena jest example.comi mam inną domenę example2.com. Gdy użytkownik odwiedza example.com, chcę, aby serwował te pliki (czyli host wirtualny), ale gdy ktoś próbuje uzyskać dostęp do domeny example2.com(która ma ten sam adres IP), chcę, aby przekierował na inny adres IP na porcie 90 bez gość wiedzący, że jest w innym porcie.

Jak mogę to osiągnąć?

<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>  

To nie zadziała i próbuje się również połączyć example.comz serwerem proxy, czy ktoś wie dlaczego?

Christiaan
źródło

Odpowiedzi:

4

Czy na pewno chcesz przekierować użytkowników? Z tego, co rozumiem, chcesz, aby serwer example2.com pośredniczył w innym miejscu. Możesz skonfigurować Apache jako serwer proxy za pomocą mod_proxy . Możesz także zdefiniować ten serwer proxy dla konkretnego VirtualHost, zobacz Przykłady VirtualHost Apache .

Na przykład coś takiego powinno działać:

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>

upewnij się również, że mod_proxy jest załadowany

LoadModule proxy_module modules/mod_proxy.so
Calimo
źródło
Powiedzmy, że mam 2 różne serwery, jeden apache (dla mnie) i jeden nginx (dla innej strony). Żądania przychodzą na serwer apache, a dla jednej witryny musi być sprzedawany przez apache, a drugi przez nginx. Ale proxy będzie działać. Dziękuję za pomoc! :)
Christiaan,
To jeszcze nie działa, a ja to zredagowałem. Czy możesz spojrzeć na mnie jeszcze raz?
Christiaan
Mówisz „nie działa”, ale nie podajesz żadnych szczegółów na temat tego, co się dzieje. To nie jest bardzo pomocne. Podaj odpowiedni opis tego, co się dzieje, dlaczego nie jest to oczekiwane, oraz wpisy dziennika serwera, jeśli to konieczne. Wygląda na to, że tworzysz fragmenty kodu, których nie próbujesz zrozumieć. Szczegółowe informacje można znaleźć w podręczniku Apache, na przykład dokument ProxyPassmówi, If the first argument ends with a trailing /, the second argument should also end with a trailing / and vice versa.że edytowałem oryginalną odpowiedź w konfiguracji, która powinna działać.
Calimo