Re: Problem beim Einrichten eines Reverse Proxy unter Apache
Am 18.01.2017 um 23:26 schrieb Sven Hartge <sven@svenhartge.de>:
> Thilo Engelbracht <mailinglists@engelbracht.de> wrote:
> > Am 18.01.2017 um 22:53 schrieb Sven Hartge <sven@svenhartge.de>:
> >> Thilo Engelbracht <mailinglists@engelbracht.de> wrote:
>
> >>> ProxyPass / http://stats.uptimerobot.com/
> >>> ProxyPassReverse / http://stats.uptimerobot.com/
> >>> RewriteEngine On
> >>> RewriteCond %{REQUEST_URI} ^/?$
> >>> RewriteRule ^(.*)$ http://stats.engelbracht.de/Qny1AuoR1 [L]
>
> >> > Grundsätzlich funktioniert das auch - aber es gibt einen
> >> > Schönheitsfehler: Wenn jemand im Browser "stats.engelbracht.de" eingibt,
> >> > dann erscheint zwar die Statusseite. So weit, so gut. Allerdings wird in
> >> > der Adresszeile "stats.engelbracht.de/Qny1AuoR1" angezeigt...
> >>
> >> > Kann mir jemand sagen, wie ich die Konfiguration verändern muss, damit
> >> > in der Adresszeile nur "stats.engelbracht.de" angezeigt wird?
> >>
> >> ProxyPass / http://stats.uptimerobot.com/Qny1AuoR1
> >> ProxyPassReverse / http://stats.uptimerobot.com/Qny1AuoR1
> >>
> >> RewriteRule etc. fallen dann weg.
>
> > das war zuerst auch mein Ansatz - aber das funktioniert nicht:
> > Wenn ich Deinen Vorschlag übernehme und einen reload von Apache
> > durchführe, dann wird nach der Eingabe von "stats.engelbracht.de" die
> > Seite nicht mehr korrekt angezeigt...
>
> > Kann es sein, dass das irgendwie mit JavaScript zu tun hat?
>
> Wahrscheinlich. mod_proxy fasst nichts innerhalb der Seite an und wenn
> man den Pfad-Teil verändert (in diesem Fall von "/Qny1AuoR1" auf "/"),
> dann geht das zumeinst schief. Es gibt dann noch mod_proxy_html, aber
> auch dieses Modul ist sehr sehr eingeschränkt in seiner Zielsetzung und
> funktioniert nicht für durch JavaScript clientseitig erzeugte dynamische
> Webseiten.
>
> Wenn du zu proxiende Webseite (hier
> http://stats.uptimerobot.com/Qny1AuoR1) nicht mitspielt (was bei
> JavaScript eigentlich immer der Fall ist), dann hast du keine Chance das
> gewüschte umzusetzen und du wirst damit Leben müssen, den Pfad
> "/Qny1AuoR1" auch in deiner veränderten URL zu sehen.
Alles klar. Erstmal vielen Dank für die Info.
Durch Zufall bin ich auf folgende Webseite gestossen:
https://legacy.thomas-leister.de/uptimerobot-statusseite-mit-eigener-subdomain-und-https-nutzen/
Hier wird exakt das gleiche Thema behandelt, allerdings kommt als
Webserver nginx zum Einsatz.
Der interessante Punkt: Der Autor schreibt:
"Mit der folgenden Konfiguration kann man dann auch auf die Angabe
der ID in der URL verzichten:"
Also genau das, was ich auch gerne hätte.
Die nginx-Konfiguration sieht wie folgt aus:
server {
server_name status.trashserver.net;
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/myssl/...;
ssl_certificate_key /etc/myssl/...;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass https://stats.uptimerobot.com/rk3R0IDJq/;
proxy_redirect off;
}
location ~ ^/(.+) {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass https://stats.uptimerobot.com;
proxy_redirect off;
}
}
Habe einen kurzen Test durchgeführt und die URL "status.trashserver.net"
aufgerufen: Die externe URL ist nicht sichtbar!
Natürlich möchte ich jetzt nicht den Apache deinstallieren und dafür den
nginx einsetzen.
Aber vielleicht besteht ja die Möglichkeit, die oben beschriebene
nginx-Konfiguration in die Apache-Syntax zu übersetzen... Habe ich
hierdurch eine Chance, mein Ziel doch noch zu erreichen?
(Oder ist es so, dass der nginx einen Reverse Proxy technisch anders
löst als der Apache?)
> S°
Lieben Gruß,
Thilo
Reply to: