Jira, Confluence und Reverse Proxy

Aufruf mit schönen Url's ohne Portangabe

Konfiguration der Anwendungen, Apache und Netzwerk

Jira und Confluence sind für mich die besten Tools im Bereich Projektverfolgung bzw. Kolaborationssoftware für Teams. Für die Installation stehen bequeme Installer bereit. Weiterhin ist die Software gut vorbereitet für den Einsatz im eigenen Netzwerk.

Beides sind Java-Anwendungen und werden mit einem embeded Tomcat Server ausgeliefert. Möglicherweise in Anlehnung daran laufen die Anwendungen per Voreinstellung nicht auf Port 80, sondern Jira auf 8080 und Confluence auf 8090. Tomcat default Port ist 8080. Prinzipiell ist somit eine Installation auf einer Maschine möglich. Natürlich ist eine Anpassung möglich. Es ist jedoch ganz nett wenn sich Anwendungen out of the box nicht in die Quere kommen.

Nach der Installation müsste man die Anwendungen mit der jeweiligen Portangabe aufrufen z.B. http://meinhostname:8080. Was natürlich etwas lästig ist, nicht schön aussieht und auch weniger versierten Benutzern Schwierigkeiten bereiten könnte. Um dies zu vermeiden kann man einen Apache Webserver als sogenannten Reverse Proxy verwenden. Langer Rede kurzer Sinn. Man schaltet den Apache Webserver dazwischen und fragt diesen an mit einer "normalen" Url. Unter der Haube fragt dieser die Anwendungen mit der Portangabe an.

Wie man die Anwendungen dafür konfiguriert steht ganz gut beschreiben auf der Atlassian Webseite unter Proxying Atlassian server applications.... Für Jira/Confluence sind folgende Schritte nötig:

  1. Auffinden im Netzwerk -> kann über einen DNS-Eintrag oder (zur Not) über einen Eintrag in der hosts Datei erfolgen
  2. Anpassung der server.xml in den Anwendungen -> ist ausführlich in der Doku beschrieben, funktioniert so
  3. Konfiguration des Apache Webservers -> siehe Beispiel unten

Vhost Konfiguration Apache 2.4 unter Windows


<VirtualHost *:80>
     ServerAdmin <your-server-admin-email>
     DocumentRoot "<path-of-document-root>"
     ServerName intern.<your-domain>
     ErrorLog "<logfile-path>/error.log"
     CustomLog "<logfile-path>/access.log" common	 
	 
	 ProxyRequests Off
	 ProxyPreserveHost On

	<Proxy *>
		Require all granted
	</Proxy>	
	
	ProxyPass /synchrony http://intern.<your-domain>:8091/synchrony
	<Location /synchrony>
		Require all granted
		RewriteEngine on
		RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
		RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
		RewriteRule .* ws://intern.<your-domain>:8091%{REQUEST_URI} [P]
	</Location>
	
	ProxyPass /jira http://intern.<your-domain>:8080/jira
	ProxyPassReverse /jira http://intern.<your-domain>:8080/jira	
	<Location /jira>
		Require all granted
	</Location>
	
	ProxyPass /confluence http://intern.<your-domain>:8090/confluence
	ProxyPassReverse /confluence http://intern.<your-domain>:8090/confluence	
	<Location /confluence>
		Require all granted
	</Location>

</VirtualHost>

Jira wäre dann z.B. unter http://intern.<your-domain>/jira und Confluence unter http://intern.<your-domain>/confluence aufrufbar.

Zurück zur Kategorie: Dev-Ops
Zurück nach oben