Mit diesem kleinen Guide könnt ihr Confluence hinter einem NGINX Server installieren.
Ein Grund dafür ist die bessere Performance von NGINX gegenüber Apache.
Confluence herunterladen, ausführbar machen und den Installer starten. x.x.x.x mit der jeweiligen Version ersetzen, die Installiert werden soll. Den Installer gibt es hier.
cd /tmp
wget https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-x.x.x-x64.bin
chmod a+x atlassian-confluence-x.x.x.x64.bin
./atlassian-confluence-x.x.x.x64.bin
Es folgt ein Installer.
Die Default-Settings sind OK.
See where Confluence will be installed and the settings that will be used.
Installation Directory:/opt/atlassian/confluence
Home Directory: /var/atlassian/application-data/confluence
HTTP Port: 8090
RMI Port: 8000
Install as service: Yes
Läuft alles glatt, quittiert Confluence den Installationsvorgang mit dieser Meldung:
Please wait a few moments while Confluence starts up.
Launching Confluence ...
Installation of Confluence 5.9.7 is complete
Your installation of Confluence 5.9.7 is now ready and can be accessed via your browser.
Confluence 5.9.7 can be accessed at http://localhost:8090
Datenbank konfigurieren
Die Datenbank benötigt einige Optimierungen für Confluence.
vim /etc/mysql/my.cnf
hinzufügen:
[mysqld]
# added for confluence
character-set-server = utf8
collation-server = utf8_bin
default-storage-engine = INNODB
# innodb_log_file_size = 2048M
# end added for confluence
Den Wert von max_allowed_packet erhöhen:
max_allowed_packet = 256M
Datenbank für Confluence erstellen
mysql -u root -p
CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON confluence.* TO 'confluenceuser'@'localhost' IDENTIFIED BY '{YOURPASSWORD}';
Confluence Datenbank-Treiber installieren
Möchte man z.B. MySQL nutzen, muss man nun noch einen Datenbank-Treiber bereitstellen. Die Treiber gibt es leider nicht bei Atlassian (die Dokumentation ist an dieser Stelle arg outdated und verwirrend).
Den Connector/J 5.1.38 direkt von mysql.com beziehen: hier und an die richtige[1] Stelle extrahieren / kopieren.
wget http://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.38.tar.gz
mv mysql-connector-java-5.1.38.tar.gz /opt/atlassian/confluence/confluence/WEB-INF/lib
cd /opt/atlassian/confluence/confluence/WEB-INF/lib
tar -zxvf mysql-connector-java-5.1.38.tar.gz mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar
mv mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar .
rm /opt/atlassian/confluence/confluence/WEB-INF/lib/mysql-connector-java-5.1.38.tar.gz
rm -rf /opt/atlassian/confluence/confluence/WEB-INF/lib/mysql-connector-java-5.1.38
Nun Confluence im Browser öffnen localhost:8090
und mit dem Installer weiterarbeiten. Am Besten nun Production Install wählen.
Dem Database-Setup Assistenten folgen. Es ist meist OK, die JDBC Datasource Connection zu wählen.
WIRKLICH LANGE WARTEN
An dieser Stelle habe ich ziemlich viel Zeit verloren, da der DB-Setup-Vorgang eine halbe Ewigkeit dauerte und die Logfile bereits einen Timeout zum Vorschein brachte.
NGINX Proxy vor Confluence schalten
Zunächst in der Datei <CONFLUENCE-INSTALL>/conf/server.xml
diese Einstellung in den Connector schreiben (z.B. ganz am Ende anhängen).
proxyName="confluence.{YOURHOSTNAME}.de" proxyPort="80"
und Confluence neu starten.
NGINX Proxy Config
In /etc/nginx/sites-available/default
diese Zeilen einfügen. Den Rest löschen (bei Setup, in dem man nur Confluence auf der Maschine haben möchte).
server {
listen 0.0.0.0:80;
server_name confluence.{YOURHOSTNAME}.de;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8090/;
}
}
Der Symlink sollte schon da sein. Falls nicht:
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
Danach NGINX neu starten.
NGINX Proxy Timeout Increase
In /etc/nginx/nginx.conf
hinzufügen:
##
# Proxy Timeout Increase
##
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
NGINX Confluence Post Size erhöhen
Da wir schon da sind, können wir auch gleich die maximale Größe der Dateien, die Confluence per POST-Request erhalten kann, erhöhen (z.B. auf 25MB).
##
# POST size increase
##
client_max_body_size 25M;
Fehgeschlagene Installation fixen
Es kann sein, dass eine Installation nicht sauber durchläuft und man von vorne starten muss. Meckert der Confluence Installer dann über sich in Benutzung befindende Ports, muss man die darauf zugreifenden Prozesse killen.
The following default options cannot be used. You will be asked to provide alternatives for these options.
- HTTP Port (In use)
- Control Port (In use)
Herausfinden, was auf dem Port läuft:
lsof -i:8000 -t
#kill it
Nützliche Commands
Die Logfiles befinden sich an dieser Stelle (default):
/opt/atlassian/confluence/logs/catalina.out
Es ist sehr schlecht von Atlassian dokumentiert; der Pfad ist tatsächlich wie angegeben (2x /confluence/) ↩︎