• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Weiterleitung an einen AJAX Server

wuschelz

Newbie
Hallo Zusammen,

nachdem ich hier einige Zeit mitgelesen habe, muss ich auch mal einen Beitrag erstellen.
Seit einiger Zeit brüte ich über einem Problem, bei dem ich nicht weiter komme.

Wir haben folgendes Szenario:
Vor unserem Intranet steht ein Sqiud, der alle Anfragen entgegen nimmt, kann er sie nicht beantworten geht er direkt auf den Tomcat, auf dem das Intranet läuft.

Nun sollen Ajax Requests an das Intranet nicht über den Tomcat abgehandelt werden, sonder ein extra Server beantwortet das. Eigentlich analog einem ProxyPass u. ProxyPassReverse von Apache.

Dazu habe ich den zusätzlichen cache_peer eingerichtet und mit einem Namen versehen:
Code:
cache_peer suche.netzwerk.de parent 5500 0 no-query originserver name=extServer
der Servername stimmt natürlich nicht, ich habe einen Fantasienamen verwendet.

Eine ACL filtert alle URIs die ich an den Server schicken möchte:
Code:
acl EXTSERVER urlpath_regex /ajax/ /somethingelse/

Wie kann ich Squid nun sagen, dass er diese ACL für den extServer anwenden soll?

Grüsse
Wuschel. Z.
 

spoensche

Moderator
Teammitglied
Wenn der per AJAX gestellte Request an einen Webserver im Internet gerichtet ist, dann lässt der Squid die Anfrage auch ins Internet und leitet sie nicht einfach auf einen Tomcat- Server um. Das macht er nur, wenn der Request an den Tomcat gerichtet ist.

Was sagen den die Logfiles?
 
OP
W

wuschelz

Newbie
oh, ich habe es vielleicht falsch beschrieben. Der Ajax Server steht im internen Netz, nicht im Internet.

Die Reqeusts gehen immer auf das Intranet:
http://unser.netzwerk.de/ hinter dem der Squid steht.

Die Ajax Requests kommen in der Form:
http://unser.netzwerk.de/ajax/<einhash>

Der Squid schickt nun alles was er nicht findet an den Tomcat. Ziel ist es aber mit der acl
Code:
acl EXTSERVER urlpath_regex /ajax/ /somethingelse/
den Request an den Ajax Server zu schicken.

Nun habe ich keine Direktiven gefunden, denen ich sagen kann, dass sie den Peer Server extServer nehmen sollen, wenn die ACL mit den Ajax Requests trifft.

Hat jemand eine Idee wie man das lösen kann? Vielleicht über die Hierarchien im Squid?
 

spoensche

Moderator
Teammitglied
wuschelz schrieb:
Code:
acl EXTSERVER urlpath_regex /ajax/ /somethingelse/

Das kann so nicht funktionieren, weil du die "/" nicht escaped ("\/") hast.

PS:

Es gibt keinen Ajax Server. AJAX = Asynchronous Javascript And XML.
 
OP
W

wuschelz

Newbie
Das Grundproblem ist eigentlich, dass zwar die ACL greift, ich aber nicht sagen kann, wenn diese ACL greift, geh zu diesem Peer Server.

Klar, Ajax ist eine Technologie, kein Server, wir nennen ihn einfach so.

Aber item, ich habs jetzt so gelöst, dass ich alle Requests, wenn sie nicht beantwortet werden können an einen Apache schicke, der vor den Tomcat geschaltet ist. Dann macht der die Entscheidung über die URI und sendet das weiter an den Server, auf dem Ajax Requests verarbeitet werden. Und siehe da, es geht.
 

spoensche

Moderator
Teammitglied
Wenn das Problem für dich gelöst ist, dann markiere den Thread bitte noch als gelöst. Dazu den ersten Beitrag editieren und im Titel ein [gelöst] einfügen.
 
Oben