Apache-Anwendungsfall

Apache-Anwendungsfall

Ich verwende Apache, um auf meinem Heimserver auf Port 443 mithilfe eines SSL-Zertifikats mehrere Websites für die Welt bereitzustellen. Gestern Abend habe ich eine Linux-Binärdatei installiert, die eine Site nur auf einem in ihrer Konfigurationsdatei definierten Port bereitstellt. Ich kann die Site nicht direkt über Apache bereitstellen.

Diese Site wird gehostet aufhttp://127.0.0.1:8081/aber ich möchte es hinter Apache über 443 verstecken, damit ich darauf zugreifen kann überhttps://myserver.duckdns.org/webapp/

Ich habe dies bisher in meiner Site-Konfigurationsdatei versucht, aber es hat nicht funktioniert:

ProxyRequests off
<Proxy *>
        allow from all
</Proxy>

RewriteEngine On
RewriteRule ^/(.*) /webapp/$1 [P]

<Location /webapp/>
        ProxyPass http://127.0.0.1:8081/
        ProxyPassReverse http://127.0.0.1:8081/
</Location>

Irgendeine Idee, wie ich das machen kann?

Ich dachte, ich könnte dies mit ProxyPass und RewriteRules machen, aber ich kriege es einfach nicht hin, dass es richtig funktioniert.

Vielen Dank im Voraus!

Antwort1

Ihre Umschreibregeln a) haben das falsche Ziel und 2) sind redundant.

RewriteRule mit [P]ist gedacht alsAlternativezu ProxyPass, nicht zusammen mit ihm. Das Umschreibziel einer [P]-Regel wäre die Remote-Webanwendungs-URL, nicht eine lokale. Sie könnten beispielsweise Folgendes verwenden:

RewriteRule ^/webapp/(.*) http://127.0.0.1:8081/$1 [P]

oderDas:

ProxyPass /webapp/ http://127.0.0.1:8081/

oderDas:

<Location /webapp/>
    ProxyPass http://127.0.0.1:8081/
</Location>

(Hinweis: Die Apache-Dokumentation empfiehlt, wann immer möglich, ProxyPass zu verwenden.)

Ihr <Proxy *>Block ist auch unnötig, denn er gilt nur fürnach vorneProxying, wobei der Client das Proxy-Ziel angibt (das Sie deaktiviert haben).

verwandte Informationen