Liferay 7.3 GA 1 in 5 Minuten hinter Reverse Proxy NginX testen

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