Apache2 als Proxy für das Maven Repository einrichten

Mit einer schnellen Internet Anbindung, macht die Arbeit mit Maven sehr viel Spass. Sobald man aber hinter einer Firewall sitzt und die Bandbreite pro Mitarbeiter eingeschränkt wird, fragt man sich schnell, wieso alle Team Mitglieder die gleichen Dateien aus dem Maven Repository über die langsame Internet Verbindung herunterladen müssen.

Die Suche nach “Maven Proxy” bei google führt zu verschiedenen Projekten, die ein Caching des Maven Repositories ermöglichen. Alle erfordern jedoch eine mühsame Konfiguration.

Ich wollte einen ganz einfachen Proxy Cache mit Apache2 einrichten. Aus dieser Idee hat sich folgende kleine Virtual Host Konfiguration für den Apache2 ergeben:

Listen 3333

<VirtualHost *:3333>
  CacheRoot /var/cache/apache2
  CacheEnable disk /
  CacheDefaultExpire -1
  ProxyRemote * http://192.168.0.1:3128
  ProxyPass / http://repo1.maven.org/
</VirtualHost>
 

Quellcode herunterladen: maven.conf

Der Apache hört zusätzlich auf Port 3333 (Listen 3333) und leitet alle Anfragen an
http://repo1.maven.org/ weiter.

Die Beschreibung der Konfiguration:

  • CacheRoot /var/cache/apache2: Gibt ab in welchem Verzeichnis Apache die gecachten Dateien ablegen soll. Dieses Verzeichnis muss existieren und der Apache muss Schreibrechte hierfür haben.
  • CacheEnable disk /: Schaltet denFestplattencache ein
  • CacheDefaultExpire -1: Die gecachten Dateien werden nie gelöscht
  • ProxyRemote * http://192.168.0.1:3128: Alle Anfragen müssen über den internen Proxy laufen. Wird nur benötigt, wenn der Apache keine direkte Verbindung zum Maven Repository aufbauen kann und über einen Proxy gehen muss.
  • ProxyPass / http://repo1.maven.org/: Gibt an, dass alle Anfragen an das Mave Repository weitergegeben werden müssen.

Folgende Apache Module werden benörigt:

  • proxy
  • proxy_connect
  • proxy_http
  • cache
  • disk_cache

Nach dem Neustart ist das Maven Repository über die URL http://[HOST]:3333/ erreichbar. Nun muss nur noch die Maven Konfiguration angepasst werden, so dass diese URL verwendet wird.

Diese Einstellungen werden in der settings.xml Datei gemacht, die sich im .m2 Verzeichnis unterhalb des Benutzerverzeichnisses befindet oder dort angelegt werden muss:

<settings>
 
  <mirrors>
    <mirror>
      <id>internal-repository</id>
      <name>Internal Cached Repository</name>
      <url>http://[HOST]:3333/maven2/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>

</settings>

Quellcode herunterladen: settings.xml

posted in Development by david

Follow comments via the RSS Feed | Einen Kommentar hinterlassen | Trackback URL

1 Comment to "Apache2 als Proxy für das Maven Repository einrichten"

  1. Webserver: Apache, Lighttpd und Tomcat | Hochwald IT Blog wrote:

    [...] Thema. Vergleich von Webservern (englisch) Die Apache Software Foundation Der Lighttpd Webserver Apache2 als Proxy für Maven Webserver Benchmarks zum Vergleich (Benchmarks eines Anbieters – mit Vorsicht zu beurteilen) Tags: [...]

Leave Your Comment