PureLife Cloud Dokumentation Self-Hosted Installation nginx Setup
nginx Setup
Auf dieser Seite
Wie man nginx erfolgreich installiert und einrichtet.
In dieser Anleitung wird beschrieben, wie du nginx unter Debian 10 installierst und für die Nutzung der PureLife Cloud konfigurierst. Die Installation ist optional und dann erforderlich, wenn der Zugriff auf die Webapp der PureLife Cloud abgesichert werden soll (z.B. Verwendung eines SSL Zertifikats).
Installation#
1. Wir empfehlen die aktuelle Version von nginx zu nutzen. Hierzu sollte die offiziellen nginx Paketquellen zu apt
hinzugefügt werden.
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
curl -L https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt-get update
2. Danach kann nginx installiert werden.
# Offizielle nginx Paketquelle
sudo apt-get install nginx
# Falls die Standard Debian Paketquelle genutzt wird
# sudo apt-get install nginx-full
Konfiguration#
Im folgenden Abschnitt wird davon ausgegangen, dass mosquitto auf den gleichen Server installiert und gestartet ist. Sollte dies nicht der Fall sein, muss die Konfiguration angepasst werden.
1. Lade die h5bp -Konfiguration herunter.
mkdir /tmp/nginx-boilerplate
cd /tmp/nginx-boilerplate/
wget https://github.com/h5bp/server-configs-nginx/archive/refs/heads/main.zip
7z x main.zip
sudo cp -r server-configs-nginx-main/h5bp/ /etc/nginx/
sudo cp server-configs-nginx-main/nginx.conf /etc/nginx/nginx.conf
sudo cp server-configs-nginx-main/mime.types /etc/nginx/mime.types
cd /etc/nginx/
rm -r /tmp/nginx-boilerplate/
2. Überprüfe ob die Konfiguration richtig erkannt wurde.
3. Erstelle eine Konfigurationsdatei für den Domain
touch /etc/nginx/conf.d/mein.domain.de.conf
4. Öffne die Datei mit einen Texteditor und füge folgendes ein.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name mein.domain.de www.mein.domain.de;
# SSL config
ssl_certificate /path/to/your/fullchain.pem;
ssl_certificate_key /path/to/your/key.pem;
ssl_trusted_certificate /path/to/your/fullchain.pem;
# HSTS aktivieren
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
include h5bp/tls/ssl_engine.conf;
include h5bp/tls/policy_balanced.conf;
include h5bp/tls/ocsp_stapling.conf;
# Adjustments for basic.conf
include h5bp/security/referrer-policy.conf;
# include h5bp/security/x-content-type-options.conf; # # Sent through PureLife Cloud
# include h5bp/security/x-frame-options.conf; # Sent through PureLife Cloud
include h5bp/location/security_file_access.conf;
include h5bp/cross-origin/requests.conf;
# Redirect from http to https on the same port
error_page 497 https://$server_name:$server_port$request_uri;
# To allow special characters in headers
ignore_invalid_headers off;
http2_push_preload on; # Enable HTTP/2 Server Push
# PureLife Cloud SSE-Verbindung
location /api/v1/sse {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header Connection '';
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
proxy_pass http://purelife-cloud-backend;
}
location /api/v1/system/live-log {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header Connection '';
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
proxy_pass http://purelife-cloud-backend;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 300s;
client_max_body_size 50M;
proxy_http_version 1.1;
proxy_hide_header X-Version-Id;
proxy_pass http://purelife-cloud-backend;
}
}
5. Überprüfe ob nginx die Konfiguration richtig erkannt hat.
6. Starte nginx neu.
sudo systemctl reload nginx.service
Zuletzt aktualisiert am 17. Juli 2024 10:15