Skip to main content

[[::Mapserver MapCache behind proxy::]]

Heute habe ich versucht, den Mapserver MapCache (http://mapserver.org/mapcache/index.html) hinter einem Proxy zum Laufen zu bringen.

Eigentlich ganz einfach denkt man sich. Einfach die Umgebungsvariable http_proxy setzen und fertig.

Aber leider hat das nicht funktioniert. Im Logfile des Apache stand immer noch, dass Curl nicht auf die URL zugreifen kann und dass der Hostname nicht aufgelöst werden kann. Die Fehlermeldung lautete:
"curl failed to request url ....: Could not resolve host: hostname.domain.tld"
Klar. Weil der Server ja den Namen gar nicht auflösen soll sondern über den Proxy gehen soll.
Also: Ich habe ein System mit Ubuntu 14.04 und dem MapCache Module für Apache, also dem Paket "libapache2-mod-mapcache" installiert.

Im anderen Internet gibt es jede Menge Leute, die dieses Problem auch haben. Hier z.B. lists.osgeo.org/pipermail/mapserver-users/2013-November/075569.html wird darauf verwiesen, man solle per Apache-Direktive SetEnv die Variablen setzen. http_proxy? Geht nicht. CurlOpts? Geht auch nicht.

Auch ein Eintrag in /etc/bash.bashrc hat nichts gebracht, obwohl alle anderen Benutzer die entsprechende Variable dann hatten.

Irgendwann bin ich dann (ich finde den Link leider nicht mehr) auf die Datei /etc/apache2/envvars gestoßen.

Und siehe da. Sobald ich die Variable all_proxy hier mit dem Eintrag "export all_proxy=PROXYADRESSE" gesetzt habe und den Apache neu gestartet habe hat es funktioniert. Mein MapCache kann nun über den Proxy ins Internet und da WMS-Dienste abrufen.

In einer Zeile:
echo export all_proxy=PROXYADRESSE >> /etc/apache2/envvars