1. Systemvoraussetzungen
1.1. Java
Der FVA Simulation Hub 1.0.0-SNAPSHOT setzt zur Ausführung Java in der Version 17 voraus.
2. Ausführung der Anwendung
2.1. Windows
Erstellen Sie das Installationsverzeichnis
$ cd [PATH_TO_APPS] $ mkdir FVA-Simulation-Hub
Entpacken Sie innerhalb des erstellten Verzeichnisses das Installationsarchiv
$ cd FVA-Simulation-Hub $ "C:\Program Files\7-Zip\7z.exe" e -spf [PATH_TO]\FVA_Simulation_Hub_v[VERSION].zip
(Optional) Editieren Sie die Datei bin/run.conf.bat.example
und benennen Sie sie um zu bin/run.conf.bat
um Java-Umgebungsvariablen zusetzen.
Editieren Sie die Datei config/application.yml.example
und benennen Sie sie um zu config/application.yml
um Konfigurationsparameter der Anwendung zu setzen.
Wechseln Sie in das Installationsverzeichnis und starten Sie die Anwendung
$ cd [PATH_TO_APPS]/FVA-Simulation-Hub $ bin/run.cmd
Der hier beschriebene Start der Anwendung sollte nur für Testzwecke verwednet werden. Für den produktiven Betrieb sollte die Anwendung als Dienst betrieben werden. |
Die Anwendung startet standardmäßig unter dem Port 8080.
Nach dem Start können Sie die erfolgreiche Ausführung im Browser testen. Klicken Sie dazu den folgenden Link: http://localhost:8080/
Verwenden Sie zum Beenden der Anwendung von der Kommandozeile aus die Tastenkombination [STRG]+[C] . Dadurch ermöglichen Sie der Anwendung ein "sanftes" Beenden mit dem automatischen Herunterfahren aller gestarteten FVA-Workbench-Instanzen.
|
2.2. Linux
Für die Installation und die Ausführung von FVA-Workbench-Instanzen ist Windows als Betriebssystem erforderlich. Eine Installation unter Linux ist nur bei Load Balancing möglich. |
Erstellen Sie das Installationsverzeichnis
$ cd [PATH_TO_APPS] $ mkdir fva-simulation-hub
Entpacken Sie innerhalb des erstellten Verzeichnisses das Installationsarchiv
$ cd fva-simulation-hub $ tar -zxf [PATH_TO]/FVA_Simulation_Hub_v[VERSION].tar.gz
(Optional) Editieren Sie die Datei bin/run.conf.example
und benennen Sie sie um zu bin/run.conf
um Java-Umgebungsvariablen zusetzen.
Editieren Sie die Datei config/application.yml.example
und benennen Sie sie um zu config/application.yml
um Konfigurationsparameter der Anwendung zu setzen.
Wechseln Sie in das Installationsverzeichnis und starten Sie die Anwendung
$ cd [PATH_TO_APPS]/fva-simulation-hub $ bash bin/run.sh
Der hier beschriebene Start der Anwendung sollte nur für Testzwecke verwednet werden. Für den produktiven Betrieb sollte die Anwendung als Dienst betrieben werden. |
Die Anwendung startet standardmäßig unter dem Port 8080.
Nach dem Start können Sie die erfolgreiche Ausführung im Browser testen. Klicken Sie dazu den folgenden Link: http://localhost:8080/
3. Ausführung als Dienst
3.1. Windows (NSSM)
Die Installation nach dieser setzt Anleitung die Anwendung NSSM (https://nssm.cc/) voraus. |
Service konfigurieren und starten
$ nssm.exe install <servicename> [PATH_TO_APPS]\FVA-Simulation-Hub\bin\run.cmd $ nssm.exe set <servicename> AppDirectory [PATH_TO_APPS]\FVA-Simulation-Hub $ nssm.exe start <servicename>
Service überwachen
Status prüfen
$ nssm.exe status <servicename>
Log-Dateien schreiben
$ nssm.exe start <servicename> $ nssm.exe set <servicename> AppStdout [PATH_TO_APPS]\FVA-Simulation-Hub\logs\service.log $ nssm.exe set <servicename> AppStderr [PATH_TO_APPS]\FVA-Simulation-Hub\logs\service-error.log
Service stoppen und entfernen
$ nssm.exe stop <servicename> $ nssm.exe remove <servicename> confirm
3.2. Windows (Windows Service Wrapper)
Die Installation nach dieser Anleitung setzt das .NET Framework 2.0 oder 4.0 voraus. |
Service konfigurieren und starten
$ cd [PATH_TO_APPS]\FVA-Simulation-Hub\bin\windows-service $ move service.xml.example service.xml $ notepad service.xml # Setzen Sie einen JMX port # Setzen Sie den Pfad zur Java-EXE $ service.exe install $ service.exe start
Service überwachen
Status prüfen
$ cd [PATH_TO_APPS]\FVA-Simulation-Hub\bin\windows-service $ service.exe status
Service stoppen und entfernen
$ cd [PATH_TO_APPS]\FVA-Simulation-Hub\bin\windows-service $ service.exe stop $ service.exe uninstall
3.3. Linux (systemd)
Service konfigurieren und starten
Navigieren Sie zum Installationsverzeichnis
$ cd [PATH_TO_APPS]/fva-simulation-hub
Vergeben Sie ausführende Berechtigung für das Start-Script
$ chmod +x bin/run.sh
Erstellen und starten Sie den Service
$ cp [PATH_TO_APPS]/fva-simulation-hub/bin/systemd/fva-simulation-hub.service /etc/systemd/system/ $ nano /etc/systemd/system/fva-simulation-hub.service # 'WorkingDirectory' -> Setzen Sie hier das Installationsverzeichnis # 'ExecStart' -> Setzen Sie hier den vollständigen Pfad zur run.sh # 'SyslogIdentifier' -> Setzen Sie hier eine ID für das System-Log $ systemctl daemon-reload $ systemctl enable fva-simulation-hub $ systemctl start fva-simulation-hub
Service überwachen
Status prüfen
$ systemctl status fva-simulation-hub $ journalctl -u fva-simulation-hub -b
Service stoppen und entfernen
$ systemctl stop fva-simulation-hub.service $ systemctl disable fva-simulation-hub.service $ rm /etc/systemd/system/fva-simulation-hub.service $ systemctl daemon-reload $ systemctl reset-failed
4. Reverse Proxy
In diesem Abschnitt wird die Einrichtung eines Reverse Proxy unter Linux beschrieben. Die aufgeführten Einstellungen können aber auch alle unter Windows verwendet werden.
4.1. Nginx
Voraussetzungen
Es wird angenommen, dass Zertifikatsdatein bereits unter den folgenden Pfaden zur Verfügung stehen:
/etc/pki/tls/certs/[DOMAIN]/cert.pem /etc/pki/tls/certs/[DOMAIN]/fullchain.pem /etc/pki/tls/certs/[DOMAIN]/privkey.pem
NginX installieren
Falls noch nicht vorhanden, kann Nginx mit dem folgenden Kommando installiert werden:
$ yum install nginx
Konfiguration erstellen
Erstellen Sie die Datei /etc/nginx/conf.d/[SUBDOMAIN].conf
mit dem folgenden Inhalt:
server { listen 80; listen [::]:80; server_name [SUBDOMAIN].[DOMAIN]; # example: server_name my-app.example.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; server_name [SUBDOMAIN].[DOMAIN]; # example: server_name my-app.example.com; ssl_certificate /etc/pki/tls/certs/[DOMAIN]/fullchain.pem; # example: ssl_certificate /etc/pki/tls/certs/example.com/fullchain.pem; ssl_certificate_key /etc/pki/tls/certs/[DOMAIN]/privkey.pem; # example: ssl_certificate_key /etc/pki/tls/certs/example.com/privkey.pem; location / { proxy_pass http://127.0.0.1:[APP_PORT]; # example: proxy_pass http://127.0.0.1:8080; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } }
Stellen Sie sicher, dass Sie alle der folgenden Platzhalter ersetzt haben:
-
[DOMAIN]
-
[SUBDOMAIN]
-
[APP_PORT]
Konfiguration testen
Testen Sie die Konfiguration mit dem folgenden Kommando:
$ nginx -t
NginX neustarten
Mit dem folgenden Kommando können Sie Nginx neustarten und die Anpasungen werden aktiv:
$ systemctl restart nginx
4.2. Apache
Voraussetzungen
Es wird angenommen, dass Zertifikatsdatein bereits unter den folgenden Pfaden zur Verfügung stehen:
/etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/cert.pem /etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/chain.pem /etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/fullchain.pem /etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/privkey.pem
Apache installieren
Falls noch nicht vorhanden, kann Apache mit dem folgenden Kommandos installiert werden:
$ sudo apt-get install apache2 $ sudo a2enmod proxy_http $ sudo a2enmod proxy_ajp $ sudo a2enmod ssl $ sudo service apache2 restart
Konfiguration erstellen
Erstellen Sie die Datei /etc/apache2/sites-available/[SUBDOMAIN].conf
mit dem folgenden Inhalt:
<VirtualHost *:80> ServerName [SUBDOMAIN].[DOMAIN] # example: ServerName my-app.example.com ServerAdmin webmaster@localhost Redirect / https://[SUBDOMAIN].[DOMAIN] # example: Redirect / https://my-app.example.com ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On </VirtualHost>
Erstellen Sie die Datei /etc/apache2/sites-available/[SUBDOMAIN]-ssl.conf
mit dem folgenden Inhalt:
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName [SUBDOMAIN].[DOMAIN] # example: ServerName my-app.example.com ServerAdmin webmaster@localhost ProxyRequests Off ProxyPreserveHost On <Proxy *> Require all granted </Proxy> ProxyPass / http://localhost:[APP_PORT]/ <Location /> ProxyPassReverse / </Location> ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined SSLCertificateFile /etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule>
Stellen Sie sicher, dass Sie alle der folgenden Platzhalter ersetzt haben:
-
[DOMAIN]
-
[SUBDOMAIN]
-
[APP_PORT]
Konfiguration aktivieren
Führen Sie die folgenden Kommandos aus, um die Konfiguration zu aktivieren:
$ sudo a2ensite [SUBDOMAIN].conf $ sudo a2dissite 000-default $ sudo a2ensite [SUBDOMAIN]-ssl.conf $ sudo service apache2 reload
Hin und wieder ist zudem ein Neustart erforderlich:
$ sudo service apache2 restart