openITCOCKPIT hinter einem Reverse Proxy betreiben¶
Hint
Um openITCOCKPIT hinter einem Reverse Proxy betreiben zu können, müssen keine Anpassungen an der Webserver Konfiguration von openITCOCKPIT durchgeführt werden!
In dieser Dokumentation wird beschrieben, wie openITCOCKPIT hinter einem Nginx oder Apache2 Reverse Proxy betrieben werden kann.
In den gezeigten Beispielkonfigurationen müssen Sie die folgenden Werte mit Ihren Werten ersetzen
Wert | Beschreibung |
---|---|
openitcockpit.example.org | Subdomain welche genutzt wird um das openITCOCKPIT Web Frontend aufzurufen. |
/etc/ssl/certs/ssl-cert-snakeoil{.pem|.key} | Dateipfad zum genutzten TLS Zertifikat um HTTPS zu aktivieren |
207.154.223.22 | Öffentliche IPv4 Adresse des Reverse Proxy |
157.230.114.24 | Interne IPv4 Adresse des openITCOCKPIT server |
Nginx als Reverse Proxy¶
Kopieren Sie die folgende Konfiguration nach /etc/nginx/sites-available/openitcockpit-proxy
server {
listen 80;
listen [::]:80;
server_name openitcockpit.example.org;
server_tokens off;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name openitcockpit.example.org;
server_tokens off;
# Set the IP Address or FQDN of your openITCOCKPIT Monitoring Server here
set $oitcserver 157.230.114.24;
# Set the TLS certificate you like to use - for example Let’s Encrypt
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
# Proxy openITCOCKPIT HTTP requests
location / {
proxy_pass https://$oitcserver;
proxy_ssl_verify off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
# Proxy Web Socket Connections
location ~ ^/(sudo_server|push_notifications|nsta)$ {
proxy_pass https://$oitcserver;
proxy_ssl_verify off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Bitte stellen Sie sicher, dass Sie alle IP-Adressen angepasst haben.
Abschließend muss die neue Konfiguration noch aktiviert werden.
ln -s /etc/nginx/sites-available/openitcockpit-proxy /etc/nginx/sites-enabled/openitcockpit-proxy
systemctl restart nginx
openITCOCKPIT sollte jetzt über den Reverse Proxy erreichbar sein.
Apache2 als Reverse Proxy¶
Kopieren Sie die folgende Konfiguration nach /etc/apache2/sites-available/openitcockpit-proxy.conf
<VirtualHost 207.154.223.22:80>
ServerName openitcockpit.example.org
Redirect / https://openitcockpit.example.org/
ErrorLog ${APACHE_LOG_DIR}/openitcockpit_error.log
CustomLog ${APACHE_LOG_DIR}/openitcockpit_access.log combined
</VirtualHost>
<VirtualHost 207.154.223.22:443>
ServerName openitcockpit.example.org
# Set the IP Address or FQDN of your openITCOCKPIT Monitoring Server here
Define oitcserver 157.230.114.24
ServerSignature Off
# HTTPS
SSLEngine on
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
# Logging
ErrorLog ${APACHE_LOG_DIR}/openitcockpit_error.log
CustomLog ${APACHE_LOG_DIR}/openitcockpit_access.log combined
# Reverse Proxy Settings
ProxyPreserveHost On
SSLProxyEngine On
SSLProxyCheckPeerName Off
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
RequestHeader set X-Forwarded-Ssl on
# Proxy WebSocket requests
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) wss://${oitcserver}/$1 [P,L]
ProxyPass / https://${oitcserver}/
# If you use a FQDN for external access
ProxyPassReverse / https://openitcockpit.example.org/
# If you use an ip address for external access
#ProxyPassReverse / https://207.154.223.22/
</VirtualHost>
Bitte stellen Sie sicher, dass Sie alle IP-Adressen angepasst haben.
Damit die neue Konfiguration aktiviert werden kann, müssen zuerst die benötigten Apache Module geladen werden.
a2enmod http2
a2enmod ssl
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_wstunnel
a2enmod headers
a2enmod rewrite
Abschließend muss die neue Konfiguration noch aktiviert werden.
a2ensite openitcockpit-proxy
systemctl restart apache2