Liferay 7.3 Release
Vor kurzem wurde Liferay 7.3 released und ich muss sagen die Startupzeit und im allgemeinen die Performance hat sich stark verbessert. Wer nun selber schnell mal testen will und einen Reverse Proxy davor geschaltet hat, der muss etwas beachten, damit das Zusammenspiel von Liferay und dem Reverse Proxy NginX problemlos funktioniert.
Die Einrichtung des Reverse Proxy NginX
##################################
# #
# Liferay Service #
# #
##################################
# Redirect http -> https
server {
listen 80;
server_name liferay.XXX.org;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name liferay.XXX.org;
# logging
error_log /var/log/nginx/liferay_error.log debug;
access_log /var/log/nginx/liferay_access.log;
include /etc/nginx/only_internal_access.conf;
location / {
# only internal access
include only_internal_access.conf;
proxy_pass http://192.168.2.1:9999;
proxy_set_header Host $host;
}
# SSL
include ssl/*.XXX.org;
}
Docker Compose Skript
Schauen wir uns nun das Docker Compose Skript dazu an. Es kommt hier das offizielle Image von Liferay https://hub.docker.com/r/liferay/portal zum Einsatz.
Das Skript ist super einfach gehaltet, aber eine wichtige Option ist eingebaut worden. Damit HTTPS korrekt über den Reverse Proxy funktioniert, muss die Umgebungsvariable LIFERAY_WEB_PERIOD_SERVER_PERIOD_PROTOCOL gesetzt werden. Diese mappt dann beim Starten direkt in die portal.properties, sodass hier sehr einfach Änderungen von außen durchgeführt werden können. Durch das Setzen auf HTTPS werden alle URLs mit dem HTTPS Protokoll versehen und Liferay funktioniert so hinter dem Reverse Proxy einwandfrei.
Ansonsten werden aus dem lokalen Verzeichnis noch die 3 Mountpoints eingehangen. So lässt sich zum Beispiel schnell ein JAR deployen. Kopieren sie es einfach in den Deploy Ordner. Da in dem Container AutoDeploy aktiv ist, wird das automatisch in die Liferay Instanz deployt.
version: '3'
services:
liferay:
image: liferay/portal:7.3.0-ga1
ports:
- "9999:8080"
environment:
- LIFERAY_WEB_PERIOD_SERVER_PERIOD_PROTOCOL=https
volumes:
- ./volumes/files:/mnt/liferay/files
- ./volumes/scripts:/mnt/liferay/scripts
- ./volumes/deploy:/mnt/liferay/deploy