Ich habe einen Webserver (nennen wir ihn C1), auf dem ein Apache/PHP-Server läuft, und dieser ist portweitergeleitet, sodass ich von überall darauf zugreifen kann. Allerdings gibt es im LAN des Webservers einen anderen Computer, der ebenfalls einen Apache-Server hat (nennen wir ihn C2). Ich kann weder die Portweiterleitung ändern, noch kann ich den Apache-Server ändern (also benutzerdefinierte Module installieren).
Gibt es eine Möglichkeit, innerhalb eines Verzeichnisses von C1 auf C2 zuzugreifen? (Wenn ich beispielsweise zu www.website.org/random_dir gehe, kann ich das Stammverzeichnis des Apache-Servers C2 durchsuchen.)
Ich versuche möglichst wenig an der Konfiguration/sonst zu ändern (zB Module aktivieren etc.)
Gibt es eine mögliche Lösung?
Antwort1
Sie können auf C1 ein Skript platzieren, das Ihre Anfragen an C2 weiterleitet und dessen Antworten präsentiert. Dies kann mithilfe von Web-Proxys erreicht werden.
Versuchen Sie die InstallationKnProxyoderPHP-Proxyals ersten Schritt und prüfen Sie, ob einer davon Ihren Anforderungen entspricht.
Denken Sie bei Verwendung des Proxys daran, C2 über seine interne IP aufzurufen (die für C1 sichtbar ist).
Antwort2
Sie können ein Skript in den Ordner in C1 einfügen, das curl verwendet, um die Informationen aus C2 abzurufen. Indem Sie es index.php nennen, wenn Sie www.website.org/random_dir besuchen, erhalten Sie Ihr Verhalten.
Um jedoch auf andere Dateien oder Ordner zuzugreifen, müssen Sie diese als Variablen übergeben, etwa: www.website.org/random_dir?folder=another_folder/subfolder&file=my_file
Würde diese Lösung Ihren Anforderungen entsprechen?
Antwort3
Reverse-Proxying ist der Name dessen, was Sie versuchen. Apache unterstützt es.
Beim Reverse-Proxying leitet ein Webserver eine HTTP-Anfrage oder URL an einen zweiten Webserver weiter (und ändert sie dabei möglicherweise), sammelt die Antwort dieses zweiten Webservers und liefert das Ergebnis (und ändert das Ergebnis möglicherweise auf dem Rückweg).
Dasist ein guter Ausgangspunkt. Ich werde diese Antwort mit einigen Beispielen aktualisieren, wenn ich Zeit habe.
Ich möchte Sie davor warnen: Reverse-Proxying funktioniert hervorragend für statische Inhalte und Inhalte, bei denen die URL der Seite nicht in Links dynamischer oder Javascript-generierter Inhalte „fest codiert“ ist. Wenn Sie eine Webanwendung oder eine Anwendung mit einem eigenen integrierten Webserver haben (denken Sie an den Remote-Zugriff von Subsonic oder uTorrent), kann es manchmal vorkommen, dass die von der Webanwendung generierten Links auf einen anderen Ort verweisen als den, zu dem Sie Reverse-Proxying betreiben. Hier kommen Rewrite-Module ins Spiel und es kann chaotisch werden. Nicht alle Webanwendungen können erfolgreich Reverse-Proxying betreiben.