User Apache und mod_proxy Paket!?

Status
Für weitere Antworten geschlossen.

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Das Thema mit Proxy's scheint mir hier im Forum leider wenig bis gar nicht behandelt zu sein.

Ich hoffe dennoch einfach mal, dass mir hier vielleicht irgendwer weiter helfen kann. :)

Gibt es eine Möglichkeit dem User Apache (also ohne einen 3. Apache zu installieren) die mod_proxy hinzuzufügen?


Brauche die mod_proxy für die Funktionen ProxyPass und ProxyPassReverse und das installieren eines 3. Apaches würde den Aufwand bedeutend erhöhen, da ich dann noch nach einer Möglichkeit suchen müsste, alle Möglichkeiten des User Apaches auf den 3. Apache zu legen (Web, User-www, Mail, Photo etc.)...

Vielleicht kennt auch jemand eine möglichst einfache Möglichkeit die Funktion von ProxyPass und ProxyPassReverse mit einem User-Proxy per IPKG zu realisieren. Zu diesem zweck habe ich mir schon mal pound angeschaut. Das damit umgesetzt zu bekommen erscheint mir bis dato aber auch wieder recht kompliziert bis unmöglich. Mit pound können zwar wohl relativ einfach Ports "intern" weitergeleitet werden, aber ich möchte ganze URL's für verschiedene ServerNames umbiegen...
 

miroethi

Benutzer
Mitglied seit
04. Feb 2009
Beiträge
50
Punkte für Reaktionen
0
Punkte
6
Hallo Brian,

Ich hatte vor einiger Zeit ein ähnliches Problem, bei der ich auch auf eine Lösung mittels mod_proxy zurückgreifen wollte.
Den "hauseigenen" user-apache den die DS mitbringt kannst du fast nicht verändern. Ich denke um eine weitere Installation eines 3ten apache wirst du nicht herumkommen.
Meine Anforderung damals war sqlite, das ich für einen CMS benötigte. Somit hab ich dann entschieden komplett auf den user-apache zu verzichten und eine komplett eigene "WEB" Umgebung mittels ipkg zu schaffen (ist ja recht ordentlich hier im Forum und im Wiki beschrieben). Ich habe also einen apapche, php und mysql nun selbst aufgesetzt.
Meine gesamten WEB-Anforderungen laufen also über meine ipkg installation.
NUR die Photostation der DS hab ich leider bis heute nicht über den neuen zum laufen bekommen. Ich konfigurierte dann den user-apache auf Port 86 und wollte einfach eine Umleitung mitles ProxyPass und ReverseProxy bauen vom neuen auf den der Syno bauen.

lt. config sind die module bereits standardmäßig mit dabei. siehe unten.

Synology> more httpd.conf | grep proxy
LoadModule proxy_module libexec/mod_proxy.so
LoadModule proxy_connect_module libexec/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/mod_proxy_http.so
LoadModule proxy_ajp_module libexec/mod_proxy_ajp.so
LoadModule proxy_balancer_module libexec/mod_proxy_balancer.so
Synology>

Da meine Zeit leider etwas knapp ist kann ich mich immer nur einige Zeit mit der DS beschäftigen. Leider hab ich es bis heute noch nicht zum laufen gebracht. Wäre also auch für jede Art von Info diesbezüglich dankbar.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Vielleicht kann man die Aufgabenstellung noch mal irgendwie genauer gestellt bekommen, weil ich im Moment noch nicht verstehe, was der Proxy machen soll.

Itari
 

Brian!

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

danke für deine Antwort, sie hat mich dann doch noch dazu motivieren können einen 3. Apache auf meiner DS209+ auf zu setzten. Leider war ich mit diesem Vorhaben nicht besonders erfolgreich, da der IPKG Apache wohl nicht ganz unbekannter Weise auf der DS209+ nicht läuft (Anmerkung: die DS209+ [PowerPC] ist nicht die DS209+ II [ARM]).

Den passende Thread dazu gibts hier.

Vielleicht kann man die Aufgabenstellung noch mal irgendwie genauer gestellt bekommen, weil ich im Moment noch nicht verstehe, was der Proxy machen soll.

Gerne führe ich das noch näher aus:

Ich möchte im Grunde nur interne Umleitungen durchführen, welche für den Client Browser aber idealerweise nicht sichtbar sein sollten und unbedingt für den Client dennoch über Port 80 bzw. 443 laufen sollen.

Beispiele:
Rich (BBCode):
ProxyPass /foo http://other:8080/
ProxyPassReverse /foo  http://other:8080/

ProxyPass /bar http://another:7001/
ProxyPassReverse /bar  http://another:7001/

Oder über VirtualHost:
Rich (BBCode):
NameVirtualHost *

<VirtualHost *>
ServerName www.mydomain.com
DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *>
ServerName other.mydomain.com
ProxyPass / http://other:8080/
ProxyPassReverse /  http://other:8080/
</VirtualHost>

<VirtualHost *>
ServerName another.mydomain.com
ProxyPass / http://another:7001/
ProxyPassReverse /  http://another:7001/
</VirtualHost>

Nutzen möchte ich das aktuell Primär im Zusammenhang mit einer Domain welche über verschiedene Wildcards verschiedene Dienste zur Verfügung stellt.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Gibt es einen Grund, warum die virtuellen Host ohne Proxy nicht gehen bzw. warum es mit alias-Direktiven bzw. mod_rewrite nicht geht?

Itari
 

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Gibt es einen Grund, warum die virtuellen Host ohne Proxy nicht gehen bzw. warum es mit alias-Direktiven bzw. mod_rewrite nicht geht?

Wäre wahrscheinlich grundsätzlich auch mit mod_rewrite machbar - allerdings habe ich es mit mod_rewrite bisher noch nicht hin bekommen, dass die aufgerufene URL auch weiterhin im Browser angezeigt wird. :(

Beispiel:
Rich (BBCode):
<VirtualHost *:80>
ServerName subdomain.meinedomain.de
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://www.meinedomain.de%{REQUEST_URI} [R=301,L]
</VirtualHost>

So leitet ein Aufruf von subdomain.meinedomain.de schön auf die gewünschte Ziel URL weiter, schaltet auch schön auf HTTPS um - zeigt diese aber auch im Browser an. :confused:

Selbes Spiel auch bei [R=303,L] am ende...
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
So leitet ein Aufruf von subdomain.meinedomain.de schön auf die gewünschte Ziel URL weiter, schaltet auch schön auf HTTPS um - zeigt diese aber auch im Browser an.

Schau dir mal die Direktive UseCanonicalName Off an, ich bin mir nicht ganz sicher, aber die macht irgendwas mit der URL ... es gibt auch noch UseCanonicalName DNS ... da findet ein reverse DNS lookup statt.

Itari
 

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Schau dir mal die Direktive UseCanonicalName Off an, ich bin mir nicht ganz sicher, aber die macht irgendwas mit der URL ... es gibt auch noch UseCanonicalName DNS ... da findet ein reverse DNS lookup statt.

UseCanonicalName-Direktive
  • Beschreibung: Bestimmt, wie der Server seinen eigenen Namen und Port ermittelt
  • Syntax: UseCanonicalName On|Off|DNS
  • Voreinstellung: UseCanonicalName Off
  • Kontext: Serverkonfiguration, Virtual Host, Verzeichnis
  • Status: Core
  • Modul: core
In vielen Situationen muss der Apache eine selbstreferenzierende URL -- d.h. eine URL, die auf den selben Server zurück verweist -- zusammenbauen. Bei UseCanonicalName On verwendet der Apache den Hostnamen und Port, der in der ServerName-Anweisung angegeben ist, um den kanonischen Namen des Servers zu erstellen. Dieser Name wird in allen selbstreferenzierenden URLs sowie in CGI-Skripten für die Werte von SERVER_NAME und SERVER_PORT verwendet.

Bei UseCanonicalName Off bildet der Apache selbstreferenzierende URLs, indem er den vom Client übermittelten Hostnamen und Port verwendet, sofern diese vorhanden sind (andernfalls wird der kanonische Name, wie oben beschrieben, benutzt). Die Werte sind die gleichen, die zur Anwendung von namensbasierten virtuellen Hosts verwendet werden, und sie sind mit den gleichen Clients verfügbar (Anm.d.Ü.: , die auch in der Lage sind, auf namensbasierte virtuelle Hosts zuzugreifen, d.h. einen Host-Header mitschicken). Die CGI-Variablen SERVER_NAME und SERVER_PORT werden ebenfalls aus den vom Client angeboten Werten erstellt.

Ein Intranet-Server, auf den Anwender mit kurzen Namen wie www zugreifen, ist ein Beispiel, wo dies sinnvoll sein kann. Sie werden bemerken, dass der Apache den Benutzer auf http://www.domain.com/splat/ umleitet, wenn dieser einen Kurznamen und eine URL, die einem Verzeichnis entspricht, ohne abschließenden Schrägstrich eingibt, wie z.B. http://www/splat. Wenn Sie Authentisierung aktiviert haben, bewirkt dies, dass der Benutzer sich zweimal identifizieren muss (einmal für www und noch einmal für www.domain.com -- lesen Sie für weitere Informationen die FAQ zu diesem Thema). Wenn UseCanonicalName jedoch auf Off gesetzt ist, denn wird der Apache zu http://www/splat/ umleiten.

Es existiert noch eine dritte Option, UseCanonicalName DNS, die für den Betrieb von IP-basierten Massen-Virtual-Hosts gedacht ist, um antiquierte Clients zu unterstützen, die keinen Host:-Header bereit stellen. Um selbstreferenzierende URLs zu ermitteln, führt der Apache bei dieser Option ein Reverse-DNS-Lookup auf die IP-Adresse des Servers aus, zu der der Client Verbindung aufgenommen hat.

Klingt zwar ganz gut, in obigen Beispiel von mir funktioniert es aber leider nicht - angezeigt wird immer noch die umgeleitete URL. :(

Dennoch danke für die Anregung! :)
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Und du hast auch den Apache danach neu gestartet?

Itari
 

Brian!

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

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Für alle die es interessiert, ähnliche Probleme haben oder vielleicht doch noch eine Lösung oder Lösungsansätze für diese Herausforderung parat haben: :rolleyes:

Ich denke mein Problem, dass bei der Lösung über mod_rewrite die verbogenen URL auch im Browser sichtbar ist liegt am redirect.

Sprich:
Rich (BBCode):
<VirtualHost *:80>
ServerName subdomain.domain.tld
RewriteEngine On
RewriteRule ^/source/(.*)$ /dest/$1 [L]
RewriteRule ^/source(.*)$ /dest/$1 [L]
</VirtualHost>

...führt folgende Umleitungen durch:
  • subdomain.domain.tld/source auf subdomain.domain.tld/dest/ -> Browser: http://subdomain.domain.tld/source/
  • subdomein.domain.tld/source/ auf subdomain.domain.tld/dest/ -> Browser: http://subdomain.domain.tld/source/

Hingegen:
Rich (BBCode):
<VirtualHost *:80>
ServerName subdomain.domain.tld
RewriteEngine On
RewriteRule ^/source/(.*)$ http://www.domain.tld/dest/$1 [L]
RewriteRule ^/source(.*)$ http://www.domain.tld/dest/$1 [L]
</VirtualHost>

...folgende Umleitungen durchführt:
  • subdomain.domain.tld/source auf subdomain.domain.tld/dest/ -> Browser: http://www.domain.tld/dest/
  • subdomein.domain.tld/source/ auf subdomain.domain.tld/dest/ -> Browser: http://www.domain.tld/dest/

Der wesentliche Unterschied der beiden RewriteRule's liegt wohl darin, dass bei letzerer auch ohne explizites angeben der Option [R] ([R] = Redirect) am Ende ein Redirect erzwungen wird!

Auszug aus dem Log (nach dem Aufruf von subdomain.domain.tld/source/):
Rich (BBCode):
[05/May/2009:17:39:05 +0200] [subdomain.domain.tld/sid#10183428][rid#102ec5d0/initial] (2) init rewrite engine with requested uri /source/
[05/May/2009:17:39:05 +0200] [subdomain.domain.tld/sid#10183428][rid#102ec5d0/initial] (3) applying pattern '^/source/(.*)$' to uri '/source/'
[05/May/2009:17:39:05 +0200] [subdomain.domain.tld/sid#10183428][rid#102ec5d0/initial] (2) rewrite '/source/' -> 'http://www.domain.tld/dest/'
[05/May/2009:17:39:05 +0200] [subdomain.domain.tld/sid#10183428][rid#102ec5d0/initial] (2) implicitly forcing redirect (rc=302) with http://www.domain.tld/dest/
[05/May/2009:17:39:05 +0200] [subdomain.domain.tld/sid#10183428][rid#102ec5d0/initial] (1) escaping http://www.domain.tld/dest/ for redirect
[05/May/2009:17:39:05 +0200] [subdomain.domain.tld/sid#10183428][rid#102ec5d0/initial] (1) redirect to https://www.domain.tld/dest/ [REDIRECT/302]

Das Log für die erste Variante spare ich mir jetzt mal. Nach dem Aufruf von subdomain.domain.tld/source/ endet es jedenfalls hiermit: [...] go-ahead with /var/services/web/dest/index.html [OK]
Wärend im Browser (wie gewünscht) eben http://subdomain.domain.tld/source/ stehen bleibt.
 

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Für alle die es interessiert

Ein weiteres mal bin ich tief beeindruckt von dem guten und schnellen Support der kleinen schmiede Synology! :)

Nicht nur das sie (meiner bisherigen Erfahrung nach) einen sehr guten und wirklich schnellen Support gewährleisten, so beeindruckt es mich schon, wenn sich immer wieder aufs neue quasi der Chef persönlich um einen bemüht! :cool:

Nun denn, für alle die es interessiert habe ich nun im Anhang eine speziell für die DS209+ (PowerPC) Compilierte Version des mod_proxy Pakets.

Vielen Dank an dieser Stelle an das gesamte Synology Team und im besonderen Derren Liu für seinen unermüdlichen Support nahezu rund um die Uhr! :eek::cool:

Da ja leider die IPKG Apache Version der Module nach wie vor für die DS209+ nicht funktioniert ist mit diesem Paket (vorerst) Abhilfe geschaffen.

Was den einen oder anderen noch interessieren dürfte ist die Antwort, welche ich auf meine Anfrage ob ich dieses inoffizielle Paket hier posten dürfe, erhalten habe:

Hi xxx,

Please go ahead to post this module on German Synology Forum.

Actually, we are thinking about complete apache modules support after some
internal discussions these two days. We have not made final decision yet. But
we will do our best to support all our customers. Thank you.

Regards,
Derren

Wie man dort lesen kann IST NICHTS VERSPROCHEN ODER GARANTIERT, aber ich denke man darf dennoch mit dieser Aussage durchaus darauf hoffen, dass es in Zukunft einen vollwertigen Apache "von Haus aus" geben könnte. :D

Für Unerfahrene eine kurze Einleitung zur Verwendung bzw. "Installation":

Bei dem Anhang einfach das .pdf am ende entfernen und am besten nach /usr/syno/apache/modules/ entpacken. Anschließend können die Module in der User-Apache Konfiguration (/usr/syno/apache/conf/httpd.conf-user) einfach (je nach Bedarf) wie folgt geladen werden:

Rich (BBCode):
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

Warnhinweis:

An dieser Stelle möchte ich nur noch ausdrücklich darauf hinweisen, dass das mod_proxy Paket nur mit äußerster Vorsicht verwendet werden sollte, da eine falsche Konfiguration ein erhebliches Sicherheitsrisiko darstellen kann (für weitere Informationen dazu siehe hier).
 

Anhänge

  • mod_proxy.zip.pdf
    88,7 KB · Aufrufe: 124
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Actually, we are thinking about complete apache modules support after some
internal discussions these two days
Das wäre ja absolut genial wenn alle Module unterstützt würden. Wiedermal ein dicker Pluspunkt für Synology :)
 

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Das wäre ja absolut genial wenn alle Module unterstützt würden. Wiedermal ein dicker Pluspunkt für Synology :)

So ziemlich genau das hatte ich mir auch gedacht, als ich diese Antwort gelesen habe! :D

Daher musste ich diese Begeisterung und Hoffnung auch direkt mit der ganzen Community teilen! ;)
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Liebe Leute,

es hat schon so seinen Grund, warum ich ab und zu mal sage: "Bitte wende dich mit deinem Problem an den Synology-Support". Es ist gut, wenn die von verschiedenen Seiten Anfragen zu dem ein oder anderen Thema bekommen und ab und zu bewegt sich da auch was.

Die wissen sehr genau, dass wir hier im deutschen Community-Forum was ganz besonderes für sie sind. Und ich hoffe, das bleibt auch weiterhin so.

Also freuen wir uns erst mal richtig. :)

Itari

PS. Es ist auch gut, wenn sie manche Probleme mitbekommen, selbst wenn wir sie manchmal auch selbst lösen könnten. Das ist auch eine Art Feedback, das sie brauchen und sie wissen das auch zu schätzen.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Hi Brain,

vielleicht findet sich eine Ecke im Wiki, wo man noch einen Verweis auf den Download-Link-Post machen kann, damit das nicht wieder untergeht.

Danke

Itari
 

Brian!

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

vielleicht findet sich eine Ecke im Wiki, wo man noch einen Verweis auf den Download-Link-Post machen kann, damit das nicht wieder untergeht.

Danke

Itari

Habe gerade mal ins Wiki geschaut und mich angemeldet. Habe dort aber keine wirklich passende stelle Gefunden. Wenn hier jemand einen Vorschlag hat dann gerne her damit ;)...

P.S: Brian nicht Brain, mich als letzteres zu bezeichnen würde ich irgendwie als anmaßend empfinden. :rolleyes: ;)
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Habe gerade mal ins Wiki geschaut und mich angemeldet. Habe dort aber keine wirklich passende stelle Gefunden. Wenn hier jemand einen Vorschlag hat dann gerne her damit ;)...

P.S: Brian nicht Brain, mich als letzteres zu bezeichnen würde ich irgendwie als anmaßend empfinden. :rolleyes: ;)

Hab eine neue Seite für dich eingerichtet: http://www.synology-wiki.de/index.php?title=Apache_Erweiterungen&action=edit

Kannst da auch gerne die Synology-Mails zitieren.

Itari
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
P.S: Brian nicht Brain, mich als letzteres zu bezeichnen würde ich irgendwie als anmaßend empfinden.

Okidoki ... war ein Tippfehler sorry :)

Itari
 

Brian!

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

Die Rubrik und Überschrift erscheint mir noch etwas unpassend, wusste aber ja selbst auch nix besseres - also nichtsdestotrotz: Super, dank dir! :)
Hab da jetzt mal was zu dem Thema verewigt und nun bekommt man bei einer Suche im Wiki nach mod_proxy endlich mal wenigstens ein Ergebnis :). Für Anregungen etc. zu meinen Ausführungen zu diesem Thema im Wiki bin ich sehr dankbar und offen. ;)

P.S: Brian nicht Brain, mich als letzteres zu bezeichnen würde ich irgendwie als anmaßend empfinden.

Okidoki ... war ein Tippfehler sorry

Hatte ich ja schon vermutet :D - musste ich dennoch direkt richtig stellen. ;)
 
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