2017-11-10 1 views
0

Ich verwende die Anweisungen auf this page, Apache zu verwenden, mit SSL, vor einer Tomcat 7-Instanz, das ist nicht mit SSL, und hat eine Webapp bereitgestellt.Verwenden von Apache 2.4 auf Ubuntu 16 zum Reverse-Proxy Tomcat 7: webapp nicht gefunden

Ich habe alle Anweisungen befolgt und bin in der Lage zu navigieren:

http://localhost 
https://localhost 
http://localhost/my-webapp 

Das einzige, was nicht Arbeits ist

https://localhost/my-webapp 

Es gibt einen 404 nicht gefunden Fehler.

Ich habe unten die relevanten Teile meiner Conf-Dateien veröffentlicht.

Apache 000-default.conf

<VirtualHost *:80> 
    ... 
    ProxyPass /my-webapp ajp://localhost:8009/my-webapp 
    ProxyPassReverse /my-webapp ajp://localhost:8009/my-webapp 
</VirtualHost> 

Apache default-ssl.conf

<VirtualHost _default_:443> 
    ... 
    SSLEngine on 
    SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem 
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key 
    SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt 
</VirtualHost> 

Tomcat server.xml

... 
    <Server port="8005" shutdown="SHUTDOWN"> 
    ... 
    <Connector port="8080" protocol="HTTP/1.1" 
      connectionTimeout="20000" 
      URIEncoding="UTF-8" 
      redirectPort="8443" /> 

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 

Ich habe alle Mods aktiviert, und beide ssl und proxy scheinen zu arbeiten. Als ich nach

http://localhost/my-webapp 

ohne https navigieren, arbeitet der Proxy in Ordnung. Und wenn ich zu

https://localhost 

navigieren, funktioniert es auch; Es gibt die statische Apache-Seite zurück. (Es beschwert sich über die selbstsignierten Zertifikaten nicht sicher zu sein, aber ansonsten, es funktioniert ...)

Sollte nicht

https://localhost/my-webapp 

auch arbeiten? Was vermisse ich?

Antwort

0

Sie müssen den Proxy innerhalb virtualhots_443

ProxyPass /my-webapp ajp://localhost:8009/my-webapp 
ProxyPassReverse /my-webapp ajp://localhost:8009/my-webapp 
+0

Vielen Dank definieren! Ich hatte Apache 2 auf CentOS verwendet und auf diesem Betriebssystem hatte ich nur eine Conf-Datei, ssl.conf. Unter Ubuntu gibt es 2 conf-Dateien, eine für den "normalen" Modus, Port 80 (000-default.conf) und eine für ssl (default-ssl.conf). Ich habe nicht einmal bemerkt, dass oben auf der Datei klar steht, welchen Port du konfigurierst, ich dachte nur, dass alles in 000-default.conf überall angewendet würde, während das Zeug in default-ssl.conf wäre nur auf https angewendet. Wie Sie sehen können, habe ich nicht viel Erfahrung mit der Konfiguration von Apache-Servern ... Wie auch immer, nochmals vielen Dank! –

Verwandte Themen