2017-04-27 2 views
1

Ich habe ein Problem mit 8 für Tomcat Apache 2 Reverse-Proxy-KonfigurationApache 2 HTTPS Reverse Proxy mit zwei Tomcat Instanzen?

Ich habe einen Server, der zwei Tomcat Instanzen laufen, alte Tomcat 7 und kürzlich installierten Tomcat 8. Tomcat 7 ein HTTP-Anschluss seine konfiguriert hat in server.xml und es verwendet den Port 8080, sieht die Konfiguration wie folgt aus:

<Connector port="8080" protocol="HTTP/1.1" 
      maxThreads="200" 
      clientAuth="false" 
      URIEncoding="UTF-8" 
      useBodyEncodingForURI="true" 
      scheme="http"/> 

Tomcat 8 hat einen HTTP-Anschluss in seinen server.xml konfiguriert und verwendet den Port 8765 mit der gleichen Konfiguration wie oben, nur anderer Hafen.

Tomcat 7 hat einen REST API in webapps Lauf-/api

Tomcat 8 hat eine REST API in webapps/anotherapi Lauf

Der Server auch Apache 2 arbeitet als ein Reverse-Proxy hat, und es hört auf Port 443. der Reverse-Proxy-Konfigurationsteil in ssl.conf sieht wie folgt aus:

<VirtualHost _default_:443> 

ServerName my.server.com:443 

ProxyPreserveHost On 

RequestHeader set X-Forwarded-Proto "https" 

ProxyRequests Off 

SSLProxyVerify none 

SSLProxyCheckPeerCN off 

ProxyPass /api http://localhost:8080/api 
ProxyPassReverse /api http://localhost:8080/api 

ProxyPass /anotherapi http://localhost:8765/anotherapi 
ProxyPassReverse /anotherapi http://localhost:8765/anotherapi 

#configuration truncated 

</VirtualHost> 

Tomcat 7 und seine Reverse-Proxy-Konfiguration haben für eine ganze Weile auf dem Server gewesen und es funktioniert in der Regel, aber Probleme auftreten, mit dem neuen Tomcat 8.

Wenn ich versuche, in meinem Browser https://my.server.com/api/someresource abzurufen bekomme ich die erwartete Antwort von meinem REST API auf Tomcat 7, aber wenn ich versuche, auf https://my.server.com/anotherapi/someresource zuzugreifen, bekomme ich HTTP Status 404 Seite von Tomcat 7 anstelle der erwarteten Antwort von Tomcat zurückgegeben 8.

Irgendwelche Ideen, warum das passiert? Gibt es noch etwas, das ich tun muss, wenn ich mit zwei Instanzen von Tomcat arbeite?

SSL-Modul ist in Apache geladen und es sollte keine Probleme mit meinem Zertifikat geben.

Antwort

0

Ich habe es selbst herausgefunden. Ich hatte auch eine alte ProxyPass-Konfiguration (die hier abgeschnitten wurde), die localhost: 8080 beim Zugriff auf das Root des Servers zurückgegeben (https://my.server.com/).

Verwandte Themen