mod_proxy_html (alternative) auf user-apache?

Status
Für weitere Antworten geschlossen.

Clubman500

Benutzer
Mitglied seit
23. Mai 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Servus allesamt!

Ich bin schon seit Wochen im Netz unterwegs und versuche mit der DS107+ einen Reverseproxy aufzusetzen. Sinn und Zweck ist es verschiedene Webinterfaces in meinem Heimnetzwerk unter einer SSL Port 443 Dyndns- Adresse zu erreichen. Ich habe es auch schon geschafft mit dem eingebauten mod_proxy meine Geräte von aussen anzusprechen, ausser die Fritzbox, aber da brauche ich glaube ich noch eine php- Weiterleitung.
Mein Hauptproblem sind jetzt die weiterführenden HTML- Links auf den Webinterfaces, die ja alle mit ihren lokalen Adressen so nach aussen gegeben werden.
Hier soll ja das mod_proxy_html greifen, was es so leider nicht für die Syno gibt...:(. Selbst kompilieren stellt mich als absoluter Linux-Neuling noch vor bis jetzt unüberwindbare Schwierigkeiten.

Jetzt meine Fragen:

1. Gibt es für das Kompilieren (des Mod_proxy_html) auf der DS107+ eine echte Step-by-Step Anleitung (hab mir schon einen Wolf gesucht)?

2. Stimmt meine Befüchtung, daß ich beim nächsten FW Update wenn sich was am Apache ändert wieder neu kompilieren muss (wäre unschön)?

3. Ist mit dem mod_proxy_html Modul in Zukunft direkt von Synology zu rechnen?

4. Gibt es eine Alternative zu mod_proxy_html? Ich habe viel über mod_rewrite gelesen, aber so wie ich es verstanden habe verändert das Modul nur die angefragten und zurückgegebenen Adressen, und nicht die in dem HTML Dokument?!?

An Synology: Ich glaube dieses wäre ein Hammerfeature zum fest einbauen!

Wäre echt nett, wenn mir jemand meine Fragen beantworten könnte!

Viele Grüße,
Felix
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
mod_proxy ist afaik bereits in der FW mitgeliefert. Da muss du nichts selber kompillieren. Einfach nur in der Hauptkonfig das Modul laden. Ich kann mich auf jeden Fall nicht daran erinnern, dass ich etwas kompilliert hätte und nutze mod_proxy auch bei mir zu Hause.
Solange die Links nicht absolut sind, sollte mod_proxy diese mit entsprechenden htaccess Regeln (mod_rewrite) diese umbiegen können
Alternativ könntest du probieren, den Apache von ipkg runterzuladen und dort zu gucken ob mod_proxy_html mitdabei ist.
 

Clubman500

Benutzer
Mitglied seit
23. Mai 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Hallo Jahlives und dnake für die Antwort!

Jetzt ist es doch aber so, daß wenn ich nur mod_rewrite nutze die internen Links der Webinterfaces (z.B. ein Untermenü von Dreambox oder ähnlichem http://192.168.178.1/menue1) nach aussen gegeben werden. Wenn ich da jetzt draufklicke (von aussen) führt das natürlich nicht zum Ziel.
Schreibt mod_rewrite bei Dir die Links in den HTML-Dokumenten um, so daß Du in diesem Fall http://xxx.dndns.com/Dreambox/menue1 auf Deinem Browser siehst?
Weil dann kann der mod_rewrite ja durchaus diesen Link wieder auf die interne IP umschreiben!
Die ganze mod_proxy Funktionalität steht und fällt nach meinem Wissensstand mit dem Umschreiben der HTML Links. Wenn die nicht umgeschrieben werden sehe ich ja leider nur die erste Seite der Webinterfaces...

Oder habe ich hier irgendwie einen Denkfehler?

Wenn das bei Dir wirklich mit allen Untermenüs von drinnen nach draussen funktioniert, kannst Du mir mal die relevanten Einträge aus http.conf und ht.access posten?

Vielen Dank!

Grüße,
Felix
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Schau dir mal list.brain-force.ch an. Diese Mailinglistensoftware liegt physisch auf dem Mailserver. Die Portweiterleitung für Port 80 landet jedoch auf dem Webserver. Also hat der Webserver entsprechende mod_rewrite Regeln und leitet bestimmte Anfragen via ProxyRequest an den Webserver auf dem Mailserver weiter. Wenn du bei einem mod_rewrite die Option [P] setzt, löst dies einen Proxyrequest aus d.h. der Client kriegt nichts davon mit, dass die Antwort von einem anderen System her kommt.
Ich guck heute abend mal in die .htaccess Datei rein was für Regeln ich aufgesetzt habe. Im Manual (http://httpd.apache.org/docs/2.0/mod/mod_proxy.html) gibt es Erklärungen zu den Optionen von mod_proxy
 

Clubman500

Benutzer
Mitglied seit
23. Mai 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Nicht, daß wir aneinander vorbeireden:
Daß der modrewrite die ein und Ausgehenden Adressen so umbiegen kann dass der User davon nichts in der Adresszeile mitbekommt ist mir klar.
Es geht ja um die Links auf den Seiten des Webinterfaces. Also einfach die anklickbaren Buttons wie z.B. Portweiterleitungsmenü.
Dass dann der richtige Link beim Internetuser "von aussen" erscheint muss ja der Quellcode der übertragenen Seite untersucht werden und alle gefundenen lokalen Links in Dyndns Links umgeschrieben werden, oder?

Oder geht das auch anders? Alles was ich bisher lesen konnte hat für dieses Problem das Third Party Modul mod_proxy_html verwendet...

Wär so schön, wenn das noch klappen würde:)

Danke und viele grüße,
Felix
 

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Hallo Felix,

Kurze Antwort:


Jetzt meine Fragen:

1. Gibt es für das Kompilieren (des Mod_proxy_html) auf der DS107+ eine echte Step-by-Step Anleitung (hab mir schon einen Wolf gesucht)?

Habe selbst auch mal lange danach gesucht und das bisher hilfreichste was ich zu diesem Thema gefunden hatte ist das hier.

2. Stimmt meine Befüchtung, daß ich beim nächsten FW Update wenn sich was am Apache ändert wieder neu kompilieren muss (wäre unschön)?

Prinzipiell stehen die Chancen dafür recht hoch, ja.


3. Ist mit dem mod_proxy_html Modul in Zukunft direkt von Synology zu rechnen?

Wenn genug Benutzer über den Synology Support nach diesem Modul fragen vielleicht. Hat in der Vergangenheit jedenfalls zu vielen schönen Erfolgen geführt. :)

4. Gibt es eine Alternative zu mod_proxy_html? Ich habe viel über mod_rewrite gelesen, aber so wie ich es verstanden habe verändert das Modul nur die angefragten und zurückgegebenen Adressen, und nicht die in dem HTML Dokument?!?

Für die absoluten Links ist mir da keine alternative bekannt. Relative links schafft i.d.R. auch mod_proxy.so und/oder mod_rewrite.so.

Ausführliche Antwort:


Ich habe vor einiger Zeit auch vor der selben Herausforderung gestanden und sie damals, zumindest "vorerst", über den absolut herausragenden Synology Support lösen können.
Denn die Jungs, bzw. sogar der Entwicklungsleiter persönlich, war damals so nett und hat mir für meine DS 209+ die mod_proxy_html.so kompiliert.
Damals hatte er sich noch dafür entschuldigt das es "so lange" gedauert hatte (waren glaube ein paar Tage), da er bei dem ersten Anlauf nach mehreren Stunden des erfolglosen herum Probierens nichts hat kmpilieren können.

Mittlerweile bin ich selbst in der Lage dazu das Modul zu kompilieren und verstehe nun, warum speziell dieses Modul etwas Trickreich war. ;)

Vielleicht solltest du auch einfach mal versuchen, ob dir der Synology Support das Modul kompiliert. Vorteil bei dieser Herangehensweise wäre, dass vielleicht irgendwann mal (bei genug Anfragen von Benutzern) das Modul standardmäßig mit bei der Firmware dabei ist. Auch wenn sich Synology bisher (nicht ganz unverständlicher Weise) auf die Standard Apache Module beschränkt hat (und das es die dabei gibt ist ja auch noch relativ frisch, davor gab es fast keine Module standardmäßig bei der Firmware dabei! :p).

Wenn du erst mal ein für deine DS kompiliertes Modul hast kannst du das auch durchaus noch bei Firmware Updates weiter verwenden. Lediglich, wie von dir schon richtig befürchtet, wenn der Apache aus der Firmware auch mal wieder aktualisiert werden sollte (würde ja so langsam schon mal wieder Zeit ;)) ist die Wahrscheinlichkeit groß, das dass Modul nicht mehr funktioniert.

Genau aus diesem Grund hatte ich mich damals dann auch mal daran gewagt, mir das Modul selbst zu kompilieren. Und wenn man diesen Vorgang noch in ein schönes Script packt (was ich, zugegebener Maßen, leider selbst noch nicht gemacht habe, sonst hätte ich das an dieser Stelle mal für die Allgemeinheit eingefügt) ist das neu kompilieren für ein (zukünftiges) Apache Update auch kein wirkliches Problem mehr! :)

Grüße,
Brian
 

Clubman500

Benutzer
Mitglied seit
23. Mai 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Hallo Brian und danke für die ausführliche Antwort.
So hatte ich es mir ja schon gedacht...
Mit den absoluten und relativen Links bin ich mir aber nicht sicher. Schätze mal das so ein Gerätewebinterface relative Links herausgibt.
Ich sehe auf jeden Fall wenn ich von aussen auf der Übersichtsseite über die Links streiche immer die interne IP plus Pfad. Ist ja auch klar, da ja die Diskstation das Webinterface aufruft. Und diese Links im Quellcode kann mod_rewrite umschreiben? Das wäre ja nötig damit der Aufruf über dyndns wieder bei der DS landet.
Ich habe das bis jetzt so verstanden das nur Adressanfragen und Rückgaben von mod_rewrite umgeschrieben werden?!?

Viele Grüße,
Felix
 

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Hallo Felix,

also ich bin auf dem Gebiet auch bloß leihe und an meinen eigenen Erfahrungen und Herausforderungen gewachsen. Ich hatte mir mal ein ähnliches Ziel gesetzt wie du: ich wollte einen internen Host extern über meine Domain zur Verfügung stellen. Das hatte mit mod_proxy dann nach einigem probieren auch funktioniert. Allerdings nur bedingt, denn cgi Scripte und Unterseiten des Hosts waren nicht oder nur bedingt erreichbar. Ob es nun die absoluten oder die relativen Adressen waren an denen mod_proxy letztlich gescheitert ist vermag ich aktuell nicht mehr sicher sagen zu können, sicher ist aber, dass es mit mod_proxy_html dann wunderbar funktioniert hatte. :)

Auch hast du wohl richtig erkannt, dass du mit mod_rewrite nur Anfragen umbiegen kannst, aber mod_rewrite nichts an dem HTML Code ändert. Mod_rewrite kann dir zwar u.U. sowohl bei absoluten als auch bei relativen Links helfen, kam für mich aber nicht in Frage, da vor allem bei absoluten links bei den externen Aufrufen meines internen Hosts die interne IP im link für den User sichtbar gewesen wäre (z.B. in der Statusleiste des Browsers).

Grüße,
Brian.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Auch hast du wohl richig erkannt, dass du mit mod_rewrite nur Anfragen umbiegen kannst, aber mod_rewrite nichts an dem HTML Code ändert. Mod_rewrite kann dir zwar u.U. sowohl bei absoluten als auch bei relativen Links helfen, kam für mich aber nicht in Frage, da vor allem bei absoluten links bei den externen Aufrufen meines internen Hosts die interne IP im link für den User sichtbar gewesen wäre (z.B. in der Statusleiste des Browsers).
Natürlich kannst du mittels mod_rewrite die Anfragen so umschreiben, dass die interne IP nicht sichbar ist. Einfach hinter der mod_rewrite Regel ein [P] machen und dann jagt mod_rewrite den Request via mod_proxy raus. Allerdings muss man mod_rewite und mod_proxy kombinieren, sonst geht's mit mod_rewrite wirklich ned ;)
 

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Natürlich kannst du mittels mod_rewrite die Anfragen so umschreiben, dass die interne IP nicht sichbar ist. Einfach hinter der mod_rewrite Regel ein [P] machen und dann jagt mod_rewrite den Request via mod_proxy raus. Allerdings muss man mod_rewite und mod_proxy kombinieren, sonst geht's mit mod_rewrite wirklich ned ;)

Und wieder was dazu gelernt! :)

Kannst du vielleicht mal ein kleines Beispiel aus deinen Konfigurationen dazu machen? :rolleyes:
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat