Linux (Alma)

Einleitung

Befolgen Sie diese Anweisungen zum Einrichten von Relution 5 auf AlmaLinux 8 oder 9. Diese Anleitung verwendet MariaDB als Datenbank und nginx als Reverse-Proxy.

Für zusätzliche Sicherheit und Leistung empfehlen wir, Relution zu installieren und MariaDB sowie nginx auf separaten Rechnern zu betreiben. Die Installation auf einer einzelnen Maschine oder auf einer oder mehreren virtuellen Maschinen sind ebenfalls möglich.

Diese Anleitung behandelt die Installation und Konfiguration einer einfachen Instanz von Relution.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass:

  • Die Maschinen sich mit dem Internet verbinden können.
  • Sie root (oder sudo) Rechte haben.
  • Sie haben ein gültiges SSL-Zertifikat für Ihren externen Hostnamen besitzen.

Selbst signierte Zertifikate funktionieren nicht, da mobile Geräte ihnen nicht vertrauen. Sie können Ihr Root-Zertifikat manuell auf einem Gerät installieren, damit es Ihrem Zertifikat vertraut. Diese Vorgehensweise wird nicht empfohlen.

Zertifikate von Let’s Encrypt → sind getestet und funktionieren.

Vorbereitung

Stellen Sie sicher, dass Ihr System aktuell ist und wget installiert ist. Diese Anleitung verwenden wget, um Skripte aus unserem GitHub-Repository herunterzuladen. Wenn Sie mit curl vertraut sind, können Sie alternativ wget durch curl` ersetzen.

sudo yum -y update
sudo yum -y install wget

Während dieser Installation müssen einige Dateien manuell bearbeitet werden. Wenn Sie mit vim vertraut sind, können Sie ihn als Standardeditor mit den folgenden Befehlen festlegen. Wenn Sie mit vim nicht vertraut sind, überspringen Sie diesen Abschnitt bitte und verwenden Sie weiterhin den Standardeditor.

sudo yum -y install vim
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100

Optional: Passwortgenerator installieren

Im Standard ist pwgen (password generator) nicht in CentOS verfügbar. Um es zu verwenden, müssen Sie zunächst das epel (Extra Packages Enterprise Linux)-Repository aktivieren. Da es sich um ein nicht unterstütztes Repository eines Drittanbieters handelt, müssen Sie es manuell installieren. Wenn Sie diese Pakete nicht auf Ihrem Server installieren möchten, können Sie diesen Schritt überspringen und sichere Kennwörter auf einem anderen Rechner generieren.

sudo yum -y install epel-release
sudo yum -y install pwgen

MariaDB installieren

Bitte verwenden Sie die neueste stabile Version von MariaDB. Prüfen Sie, welche Version die letzte stabile Version ist MariaDB →

Bei der Erstellung dieser Anleitung war die letzte stabile Version die 11.1. Bei der 10.11 handelt es sich um eine LTS Version, die ebenfalls verwendet werden kann.

Prüfen Sie zudem, welche Version direkt installiert werden kann:

sudo dnf module list mariadb

Versionsprüfung

Hierbei handelt es sich um eine ältere Version. Aus diesem Grund sollte darauf nicht zurückgegriffen werden.

Es ist stattdessen möglich, die Version 11.1 zu installieren. Da es sich bei der Version 10.11 um eine LTS Version handelt, zeigen wir hier, wie diese installiert wird.
Führen Sie diesen Befehl aus:

sudo vi /etc/yum.repos.d/mariadb.repo

Fügen Sie anschließend diesen Abschnitt ein und speichern Sie die Datei.

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.11/rhel8-amd64
module_hotfixes=1
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1 

Als nächstes muss das Repository geupdatet werden.

sudo dnf update

Nun kann MariaDB installiert werden. Folgen Sie dazu den Bildschirmanweisungen.

sudo dnf install mariadb-server mariadb

Versionsprüfung

Konfiguration von MariaDB für Relution

Laden Sie das relution.cnf Template aus dem GitHub Repository herunter und speichern Sie es unter /etc/my.cnf.d/relution.cnf.

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/etc/my.cnf.d/relution.cnf.template
sudo mv relution.cnf.template /etc/my.cnf.d/relution.cnf
sudo chmod og-w /etc/my.cnf.d/relution.cnf

Wenn SELinux im Enforcing Mode betrieben wird (Standard), sind die Berechtigungen für die Datei nach dem Verschieben falsch.

Führen Sie den folgenden Befehl aus, um sie zu korrigieren. Andernfalls wird SELinux den Dienst aus Sicherheitsgründen am Zugriff auf die Datei hindern.

sudo restorecon -v /etc/my.cnf.d/relution.cnf

Starten Sie MariaDB und stellen Sie sicher, dass der Dienst nach einem Systemneustart automatisch gestartet wird.

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

MariaDB Installation prüfen

Sie sollten nun in der Lage sein, eine Verbindung zu dieser MariaDB-Instanz herzustellen. Beachten Sie, dass aus Gründen der Abwärtskompatibilität die Kommandozeilen-Tools immer noch mysql verwenden, dies ist kein Fehler.

mysql -u root

Sie sollten eine ähnliche Ausgabe wie die folgende sehen:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Geben Sie diesen Befehl ein, um zu überprüfen, ob die Kollation des Servers und der Datenbank wie gewünscht eingestellt ist wie gewünscht auf utf8mb4 gesetzt sind:

SHOW VARIABLES LIKE '%collation%';

Stellen Sie sicher dass collation_database und collation_server auf utf8mb4_general_ci konfiguriert wurden.

Drücken Sie Ctrl+D, um sich von der Datenbank zu trennen und zurück zur Eingabeaufforderung zu gelangen.

Relution Datenbank erstellen

Als Nächstes erstellen wir die Datenbank relution und einen zugehörigen Datenbank-Benutzer. Dieser Benutzer wird vom Dienst Relution verwendet, um sich mit der Datenbank verbinden. Laden Sie das Skript von GitHub herunter.

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/scripts/create_database.sh --directory-prefix=/opt

Stellen Sie sicher, dass die Datei von root ausführbar ist:

chmod 700 /opt/create_database.sh

(Optional) Nutzen Sie pwgen um ein sicheres Passwort zu erzeugen:

pwgen -snc 48 1

Führen Sie das Skript aus, um die Datenbank zu erstellen:

/opt/create_database.sh "relution" "<password>"

Dadurch wird eine neue Datenbank namens relution und ein neuer Datenbankbenutzer mit dem Namen relution, der volle Rechte auf diese Datenbank hat, erstellt.

Dieser Benutzer wird vom Dienst Relution für den Zugriff auf die Datenbank verwendet. Wenn administrativer Zugriff auf die Datenbank für Wartungszwecke benötigt wird, empfehlen wir, dafür einen separaten Datenbankbenutzer anzulegen.

Stellen Sie sicher, dass Sie das Kennwort ohne die Anführungszeichen an einem sicheren Ort speichern. Sie müssen dieses Kennwort später benutzen, um Relution Zugriff auf die Datenbank zu gewähren.

Vergewissern Sie sich, dass Sie sich als dieser Benutzer mit der Datenbank verbinden können:

mysql -u relution -p relution

Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden. Sie sollten in der MariaDB-Eingabeaufforderung wie oben beschrieben Strg+D verwenden, um sich wieder abzumelden.

Firewall-Konfiguration

Wenn Sie Relution auf einem anderen Rechner installieren, müssen Sie den Port 3306 auf diesem Rechner öffnen, damit Relution mit MariaDB kommunizieren kann. Wenn Relution auf demselben Rechner installiert wird, können Sie diese Schritte überspringen.

Ersetzen Sie ADDRESS durch die IP-Adresse und Netzmaske des Rechners oder des Netzwerks, dem Sie den Zugriff auf diese MariaDB-Instanz gewähren möchten. Beispiele: Verwenden Sie 192.168.0.1/32, um den Zugriff auf den Rechner mit der IP-Adresse 192.168.0.1 zu geben. Verwenden Sie 192.168.0.0/24, um den Zugriff von jeder Maschine im IP-Adressbereich 192.168.0.x zu gewähren. Im Zweifelsfall fragen Sie Ihren Netzwerkadministrator.

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="###ADDRESS###" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload

Relution installieren

JAVA

Installieren Sie die folgenden Pakete. Inklusive Java.

Changelog →

sudo yum -y install java-17-openjdk unzip wget

Java home konfigurieren

sudo echo "export JAVA_HOME=/usr" >> /etc/profile.d/relution_profile.sh
source /etc/profile

Sicherstellen, dass die Änderungen angewendet wurden

echo $JAVA_HOME

Es sollte dieser Pfad angezeigt werden (/usr).

Einen Relution User anlegen

Einen User ohne Berechtigungen anlegen, sodass Relution durch ihn ausgeführt werden kann:

useradd -s /usr/bin/false -r relution

Dadurch wird ein unprivilegierter Benutzer mit dem Namen relution angelegt, der verwendet wird, um den Relution-Dienst auszuführen. Dies geschieht aus Sicherheitsgründen, da das Ausführen von Diensten mit root-Rechten nicht empfohlen wird.

Relution herunterladen

Das Relution Paket herunterladen und entpacken:

wget http://repo.relution.io/package/latest/relution-package.zip --directory-prefix=/opt
unzip /opt/relution-package.zip -d /opt

Eigentümer vom relution Verzeichnis setzen:

sudo chown -R relution:relution /opt/relution

Relution Basiskonfiguration

Relution Konfigurationsdatei herunterladen:

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/opt/relution/application.yml.template

Bearbeiten Sie die application.yml.template und passen Sie sie an Ihre Umgebung an. Alle Parameter mit Platzhaltern wie %VALUE%, zum Beispiel %MYSQL_PASSWORD% müssen angepasst werden. Es müssen mindestens die folgenden Parameter angepasst werden:

PlatzhalterBeschreibung

%EXT_HOSTNAME_URL%

Die externe Adresse des Relution Servers, z.B. https://mdm.example.com

%MYSQL_PASSWORD%

Das PAsswort des Relution Datenbank Benutzers

%SMTP_HOSTNAME%

Der Hostname des SMTP Servers

%SMTP_PORT%

Der Port des SMTP Servers (default: 25)

%SMTP_USERNAME%

Der Benutzername des SMTP Servers

%SMTP_PASSWORD%

Das PAsswort des SMTP Serverbenutzers

%SYSTEM_ADMIN_PASSWORD%

Das initiale Passwort des Systemadministrators Ändern Sie dies nach dem ersten Login und entfernen Sie danach diese Zeile

%SYSTEM_ADMIN_EMAIL%

Die Mailadresse des Systemadministrators

%ORG_UNIQUE_NAME%

Der eindeutige Name der neu zu erstellenden Relution-Organisation. Darf nur Zeichen und Buchstaben und keine Leerzeichen enthalten.

%ORG_DISPLAY_NAME%

Der Name der neuen Organisation

%ADM_USERNAME%

Der Username des Administrators der neuen Organisation. Darf nur Zeichen und Buchstaben und keine Leerzeichen enthalten.

%ADM_PASSWORD%

Das initiale Passwort des Organisationsadministrators Ändern Sie dies nach dem ersten Login und entfernen Sie danach diese Zeile

%ADM_FIRST_NAME%

Der Vorname des Organisationsadministrators

%ADM_LAST_NAME%

Der Nachname des Organisationsadministrators

HINWEIS: Erwägen Sie die Verwendung von pwgen, um das anfängliche Passwort für Ihr administratives Konto zu generieren. Wir empfehlen, das Passwort zu ändern, nachdem Sie sich zum ersten Mal angemeldet haben.

Verschieben Sie die Datei in das Installationsverzeichnis des Relution-Servers:

mv application.yml.template /opt/relution/application.yml

Stellen Sie sicher, dass nur root diese Datei bearbeiten kann und erlauben Sie relution, sie zu lesen.

chown root:relution /opt/relution/application.yml
chmod 640 /opt/relution/application.yml

Installation testen

Um zu überprüfen, ob die Einrichtung bis zu diesem Punkt korrekt ist, starten Sie den Relution Dienst im Vordergrund.

cd /opt/relution
sudo -u relution JAVA_HOME=/usr bin/relution-foreground.sh

Warten Sie, bis der Relution-Dienst gestartet ist. Sobald die Terminalausgabe aufgehört hat, sich zu bewegen, sollten Sie in der Lage sein, eine Verbindung zum Portal mit einem Browser herzustellen. Um eine Verbindung von einem entfernten Rechner aus herzustellen, stellen Sie sicher, dass der Port 8080 in der Firewall des Rechners geöffnet ist. Aus Sicherheitsgründen sollten Sie diesen Port schließen, sobald Relution und Nginx konfiguriert sind. Beachten Sie, dass ein Login über Port 8080 aus Sicherheitsgründen nur von localhost oder 127.0.0.1 möglich ist.

http://<hostname>:8080

So lassen Sie vorübergehend Verbindungen über Port 8080 bis zum nächsten Server-Neustart zu:

sudo firewall-cmd --zone=public --add-port=8080/tcp

Wenn alles funktioniert, sollten Sie das Relution-Portal sehen und sich mit dem administrativen Konto anmelden können, das in der Datei application.yml definiert wurde. Aus Sicherheitsgründen sollten Sie das Passwort des Administrators ändern, nachdem Sie sich angemeldet haben. Erwägen Sie das Entfernen der ursprünglichen Organisation und die Administratorkonfiguration aus der application.yml.

Wenn Sie Fehler erhalten, überprüfen Sie, ob Sie alle oben genannten Schritte durchgeführt haben. Verwenden Sie Strg+C", um den Dienst anzuhalten, und warten Sie, bis der Dienst heruntergefahren ist. Wenn der Dienst nicht beendet wird, verwenden Sie erneut die Tastenkombination “Strg+C”, um das Beenden des Dienstes zu erzwingen.

Erstellen des systemd service files

Um Relution als Systemdienst zu starten, erstellen Sie eine systemd-Dienstdatei für Relution. Sie können die Datei von unserem GitHub-Repository herunterladen.

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/etc/systemd/system/relution.service.template

Verschieben Sie die Datei in das systemd-Verzeichnis.

sudo mv relution.service.template /etc/systemd/system/relution.service

Laden Sie den systemd-Daemon neu, um den neuen Dienst zu übernehmen.

sudo systemctl daemon-reload

Wenn SELinux im Enforcing Mode betrieben wird (Standard), sind ggf. die Berechtigungen für die Datei nach dem Verschieben falsch.

Führen Sie den folgenden Befehl aus, um sie zu korrigieren. Andernfalls wird SELinux den Dienst aus Sicherheitsgründen am Zugriff auf die Datei hindern.

sudo restorecon -v /etc/systemd/system/relution.service

Stellen Sie sicher, dass die Verzeichnisse von Relution für den Dienst noch zugänglich sind. Wenn die Anwendung zuvor als root gestartet wurde, kann es vorkommen, das Relution nicht in die Logfiles schreiben kann.

sudo chown -R relution:relution /opt/relution
sudo chown -R relution:relution /tmp/relution.tmp

Starten Sie Relution und stellen Sie sicher, dass der Dienst nach einem Neustart des Systems automatisch gestartet wird.

sudo systemctl start relution
sudo systemctl enable relution

Um den Start des Dienstes zu überwachen, können Sie seine Logfile verfolgen (Drücken Sie STRG+C zum Beenden).

tail -f /opt/relution/log/relution.log

Warten Sie, bis der Relution-Dienst gestartet ist. Sie sollten nun wieder in der Lage sein mit einem Browser das Relution Portal zu öffnen.

http://<hostname>:8080

Es ist auch ratsam, den Firewall-Port zu schließen, der für den Test geöffnet war. Andernfalls bleibt der Port bis zum nächsten nächsten Neustart des Systems offen. Wenn Nginx auf einem anderen Rechner installiert werden soll, können Sie diesen Schritt überspringen und mit der Firewall-Konfiguration unten fortfahren.

sudo firewall-cmd --zone=public --remove-port=8080/tcp

Firewall Konfiguration

Wenn Sie Nginx auf einem anderen Rechner installieren, müssen Sie dauerhaft den Port 8080 auf diesem Rechner geöffnet lassen, damit Nginx mit Relution kommunizieren kann. Wenn Nginx auf demselben Rechner installiert werden soll, können Sie diese Schritte überspringen.

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="###ADDRESS###" port protocol="tcp" port="8080" accept'
sudo firewall-cmd --reload

Nginx installieren

Voraussetzungen

Sie haben ein gültiges SSL-Zertifikat und einen Zertifikatsschlüssel von Ihrem SSL-Anbieter (Zertifizierungsstelle, CA) erhalten. Wenn Sie [OCSP] verwenden möchten verwenden möchten, sollten Sie auch eine Datei für die Zertifikatskette haben.
stapling →

SSL Zertifikat umwandeln →

Kopieren Sie diese Dateien auf den Server, auf dem Sie Nginx einrichten werden einrichten wollen (z.B. über SSH). Verschieben Sie diese Dateien in die entsprechenden Verzeichnisse und sichern Sie sie nach Bedarf.

Verschieben Sie die Zertifikatsdatei an ihren Standardspeicherort:

mv server.pem /etc/pki/tls/certs
chown root:root /etc/pki/tls/certs/server.pem
chmod 644 /etc/pki/tls/certs/server.pem

Das Zertifikat ist öffentlich, es wird an jeden gesendet, der eine Verbindung zu Ihrer Website herstellt. Es ist in Ordnung, diese Datei für jeden lesbar zu machen.

Verschieben Sie den Zertifikatsschlüssel an seinen Standardspeicherort:

mv server.key /etc/pki/tls/private
chown root:root /etc/pki/tls/private/server.key
chmod 600 /etc/pki/tls/private/server.key

Wenn SELinux im erzwingenden (enforcing) Modus ist (Standard), kann der Sicherheitskontext der Dateien nach dem Verschieben falsch sein. Führen Sie die folgenden Befehle aus, um dies zu korrigieren. Andernfalls verhindert SELinux den Zugriff von Diensten auf diese Dateien aus Sicherheitsgründen.

sudo restorecon -v /etc/pki/tls/certs/server.pem
sudo restorecon -v /etc/pki/tls/private/server.key

Aus Sicherheitsgründen werden diese Dateien ignoriert, wenn ihre Berechtigungen korrekt gesetzt sind. Stellen Sie sicher, dass Sie die Berechtigungen wie wie oben beschrieben gesetzt wurden. Der private Schlüssel darf nur von root lesbar sein. Stellen Sie Sie diese Datei sicher auf. Jeder, der Zugang zu diesem Schlüssel hat, kann Daten in Ihrem Namen signieren und, an Sie gesendete private Informationen entschlüsseln.

Wenn Sie Let's Encrypt und Certbot → sollten Sie darauf achten, dass die Schlüssel an einem sicheren Platz gespeichert werden.

Installation von Nginx

Installieren Sie die notwendigen Pakete:

sudo yum -y install epel-release
sudo yum -y install nginx

Erzeugen sicherer Diffie-Hellman-Parameter

sudo openssl dhparam -out /etc/nginx/dhparams.pem 4096

Dies kann, abhängig von der Serverperformance sehr lange dauern. Erstellen Sie ein Cache-Verzeichnis für nginx. Dieses wird zum Zwischenspeichern heruntergeladener großer Dateien verwendet.

sudo mkdir /usr/share/nginx/cache
sudo chown nginx:nginx /usr/share/nginx/cache

Laden Sie die Konfigurationsdateien herunter:

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/etc/nginx/conf.d/relution-ssl.conf.template
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/etc/nginx/conf.d/relution-location.include.template

Bearbeiten Sie die relution-ssl.conf.template und passen Sie sie an Ihre Umgebung an. Alle Parameter mit Platzhaltern %VALUE% müssen konfiguriert werden. zum Beispiel: %EXT_HOSTNAME%. Es handelt sich um diese Parameter:

ParameterBeschreibung

%EXT_HOSTNAME%

Muss mit dem Common Name (cn) des SSL Zertifikats zusammenpassen

%SSL_CERT_PATH%

Pfad zum SSL Zertifikat

%SSL_CERT_KEY_PATH%

Pfad zum Key des SSL Zertifikats

%SSL_CERT_CHAIN_PATH%

Pfad zur SSL Zertifikatskette

Wenn sich Ihr Relution-Server auf einem anderen Rechner befindet, ändern Sie die IP-Adresse in den Parametern proxy_pass in die IP-Adresse des Relution-Servers. Beachten Sie, dass diese Option sowohl in relution-ssl.conf.template als auch in relution-location.include.template vorhanden ist.

  • Von proxy_pass http://127.0.0.1:8080;
  • Auf proxy_pass http://<relution-ip>:8080;

Wenn Sie [OCSP] nicht verwenden möchten stapling](https://www.digicert.com/ssl-support/nginx-enable-ocsp-stapling-on-server.htm), kommentieren Sie die folgenden Optionen aus:

#    ssl_stapling on;
#    ssl_stapling_verify on;
#    ssl_trusted_certificate %SSL_CERT_CHAIN_PATH%;

Wenn Sie planen native Windows Apps mit Relution auf Windows Geräten zu installieren, kommentieren Sie folgende Zeilen aus:

img

Andernfalls wird die Installation der Apps fehlschlagen.

Verschieben Sie die Dateien in die Zielverzeichnisse:

sudo mv relution-ssl.conf.template /etc/nginx/conf.d/relution-ssl.conf
sudo mv relution-location.include.template /etc/nginx/conf.d/relution-location.include

Wenn SELinux im Enforcing Mode betrieben wird (Standard), sind die Berechtigungen für die Datei nach dem Verschieben falsch. Führen Sie den folgenden Befehl aus, um sie zu korrigieren. Andernfalls wird SELinux den Dienst aus Sicherheitsgründen am Zugriff auf die Datei hindern.

sudo restorecon -v /etc/nginx/conf.d/relution-ssl.conf
sudo restorecon -v /etc/nginx/conf.d/relution-location.include

Prüfen Sie die Konfiguration mit diesem Befehl:

sudo nginx -t

Sie sollten eine Meldung wie syntax is okay und test is successful erhalten. Wenn Sie Fehler erhalten, überprüfen Sie Ihre Nginx-Konfiguration auf Tippfehler.

Standardserver

Die Standardkonfiguration von Nginx konfiguriert eine Site für ihre Platzhalter Webseite. Wenn die Webanwendung von Relution die einzige Seite ist, die auf diesem Server gehostet wird, können Sie diesen “Standard-Server” deaktivieren und Relution zum Standard machen. Wenn Sie mehrere Sites hosten (“virtuelle Hosts”), überspringen Sie diesen Schritt.

Öffnen Sie die globale Nginx-Konfiguration:

sudo vi /etc/nginx/nginx.conf

Kommentieren Sie den server { ... } Bereich aus:

#    server {
#        listen       80 default_server;
#        listen       [::]:80 default_server;
        [...]
#    }

Es gibt noch einen weiteren server { ... } Bereich für SSL (i.e. HTTPS). KOmmentieren Sie diesen ebenfalls aus:

#    server {
#        listen       443 ssl default_server;
#        listen       [::]:443 ssl;
        [...]
#    }

Ändern Sie die Nginx-Konfiguration für Relution:

sudo vi /etc/nginx/conf.d/relution-ssl.conf

Fügen Sie default_server an die erste Listen-Option eines jeden Servers an. Sie sollte ähnlich wie diese aussehen:

    server {
        listen 0.0.0.0:80 default_server;
        listen [::]:80;
    [...]

    server {
        listen 0.0.0.0:443 ssl default_server;
        listen [::]:443 ssl;
    [...]

Wenn Sie planen native Windows Apps mit Relution auf Windows Geräten zu installieren, kommentieren Sie folgende Zeilen aus:

img

Andernfalls wird die Installation der Apps fehlschlagen.

Prüfen Sie, dass Ihre Nginx Konfiguration gültig ist:

sudo nginx -t

Wenn Sie eine Meldung wie syntax is okay und test is successful erhalten, ist dies der Fall.. Wenn Sie Fehlermeldungen bekommen, prüfen Sie bitte die Konfiguration.

Nginx Dienst starten und aktivieren

Wenn alles in Ordnung ist, starten und aktivieren Sie den Nginx Dienst:

sudo systemctl start nginx
sudo systemctl enable nginx

Wenn Sie Fehlermeldungen erhalten, oder der Dienst nicht starten, schauen Sie in diesem Log: (/var/log/nginx/error.log).

Firewall

Öffnen Sie die Ports 80 und 443 in der Firewall, sodass HTTP und HTTPS funktionieren.

sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --reload

SELinux Konfiguration

Möglicherweise können Sie nicht sofort eine Verbindung zu https://<Ihr-fqdn-hostname> herstellen. Wenn dies der Fall ist, überprüfen Sie die Fehlerprotokolle von Nginx.

cat /var/log/nginx/relution_error.log | grep "13: Permission denied"

Möglicherweise sehen Sie Fehlermeldungen wie diese::

2022/06/27 18:12:41 [crit] 11111#0: *2 connect() to <relution-ip>:8080 failed (13: Permission denied) while connecting to upstream, client: <client-ip>, server: <your-fqdn-hostname>, request: "GET / HTTP/1.1", upstream: "http://<relution-ip>:8080/", host: "<nginx-ip>"

Überprüfen Sie, ob es sich tatsächlich um ein SELinux-Problem handelt:

sudo cat /var/log/audit/audit.log | grep nginx | grep denied

Sie sollten eine oder mehrere denied Nachrichten, ähnlich dieser, sehen:

type=AVC msg=audit(1524845545.644:365): avc: denied { name_connect } for pid=11111 comm="nginx" dest=8080 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket

Erlauben Sie nginx, sich mit dem anderen Rechner zu verbinden:

sudo setsebool -P httpd_can_network_connect 1

Sie sollten nun in der Lage sein, sich mit Ihrer Relution-Instanz über HTTPS zu verbinden.