2017-09-21 6 views
2

Ich habe eine (node ​​/ react/redux) -Webapp, die auf 4 Ports läuft: ein Backend-Server läuft auf 4050, und drei Client-App Stücke laufen von 3000, 4000 und 5000. (Running auf AWS, Ubuntu 16.04)Apache2 Reverseproxy/Portweiterleitungsprobleme

NGINX Portweiterleitung mit Reverse-Proxy funktioniert gut. Aber meine Organisation ist an Apache gewöhnt, und Apache spielt besser mit unserem SAML2 SSO-System, das ich gerne verwenden würde.

Ich habe Umleitungen bekommen zu arbeiten, wie in

RewriteRule "^/client1$" "http://my.aws.ip.addr:3000/" [R] 
RewriteRule "^/client2$" "http://my.aws.ip.addr:4000/" [R] 
RewriteRule "^/client3$" "http://my.aws.ip.addr:5000/" [R] 

in meinem /etc/apache2/apache2.conf. Ich kann anscheinend keine anderen Vorschläge zur Arbeit bekommen. Zum Beispiel, VirtualHost Deklarationen. Ich würde die "Ästhetik" der VirtualHost-basierten Proxying bevorzugen und würde gerne verstehen, warum ich nicht von URLs wie http://my.aws.ip.addr/client1 weiterleiten kann.

Eine Probe Virtualhost, das nicht funktioniert:

<VirtualHost *:443> 
    ... 
    ServerName my.aws.ip.addr/client1 
    ProxyRequests Off 
    ProxyVia Off 
    ProxyPreserveHost On 
    <Proxy *> 
    Order allow,deny 
    Allow from all 
    </Proxy> 
    ProxyPass /client1/ http://my.aws.ip.addr:3000/ 
    ProxyPassReverse /client1/ http://my.aws.ip.addr:3000/ 
    ... 
</VirtualHost> 

(Funktioniert nicht bei *:80 entweder)

Kann jemand helfen?

Antwort

0

Versuchen Sie, den Weg von dem Server zu entfernen: nur durch eine Domain

ServerName my.aws.ip.addr 

Diese Zeile gefüllt werden soll: es gibt Apache, welche Domain Anfrage diese Konfiguration auslösen soll.

Sonst scheint die Koniguration gut.