Trailing Slash …

Mittwoch, 27. Mai 2009

… oder wie konfiguriere ich mod_proxy_balancer so, dass meine URLs dort hingeleitet werden wo ich will und nicht wie es der Apache gerne möchte.

Heute habe ich ungefähr 2 Stunden danach gesucht, warum eine URL über einen mod_proxy_balancer immer in einem 404 endete.
Nach der Analyse über tcpdump und Wireshark war es dann irgendwann klar. Beim Routing über den mod_proxy_balancer wird wohl irgendwie ein Slash (/) an die URL gehängt. Dumm für Endpunkte die z.B. wie http://server/endpoint?wsdl enden.

Nach ein wenig Sucherei und Bastelei war das aber auch gefixt.

Folgendes Beispiel routet http://server.com:8080/MyEndpoint auf http://server.com:8080/MyEndpoint/

ProxyPass /MyEndpoint balancer://clusterservice

<Proxy balancer://clusterservice>
      BalancerMember http://server.com:8080/MyEndpoint
      BalancerMember http://server.com:8080/MyEndpoint
</Proxy>

Das nächste Beispiel routet die URL ohne Slash weiter. http://server.com:8080/MyEndpoint aufhttp://server.com:8080/MyEndpoint


ProxyPass /MyEndpoint balancer://clusterservice/MyEndpoint

<Proxy balancer://clusterservice>
      BalancerMember http://server.com:8080
      BalancerMember http://server.com:8080
</Proxy>

Was lernen wir daraus? Tcpdump in Verbindung mit Wireshark ist unersetzbar.