Linux Cockpit hinter Subdomain statt Port 9090 per Apache Reverse Proxy
Aus znilwiki
Nach einem Artikel in der c't habe ich auf meine diversen Linux Servern die Software Cockpit getestet:
http://cockpit-project.org/
Per Default ist das Webinterface unter
https://ip-address-of-machine:9090
zu erreichen.
Ich wollte das ganze nun hinter eine Subdomain packen. Es reicht wenn man einen der Server erreichen kann, die anderen kann man dann diesem hinzufügen und dann umschalten.
Da Sockets eingesetzt werden war es zunächst ein wenig fummelei - aber google sei Dank fand sich eine Lösung.
Vorbereitung
- Subdomain beim Provider oder im DNS anlegen und auf die externe IP des Linux-Hosts zeigen lassen
- Subdomain im Apache2 anlegen
- SSL Zertifikat für Subdomain erstellen, z.B. per Let's Encrypt
- Cockpit installiert und den Dienst gestartet, lauscht hinter Port 9090
Apache Module nachinstallieren / aktiviern
Um den Apache auch als Reverse Proxy nutzen zu können brauch es ein paar Module die erst noch aktiviert werden müssen:
a2enmod rewrite a2enmod proxy_http a2enmod ssl
Im Anschluss ein
service apache2 restart
und es kann losgehen.
Reverse Proxy Konfiguration
Die Konfigurationsdatei der Subdomäne wird wie folgt angepasst:
<VirtualHost 192.168.45.10:80>
ServerName cockpit.znil.org
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
<VirtualHost 192.168.45.10:443>
ServerName cockpit.znil.org
ServerAdmin webmaster@cockpit.znil.org
SSLCertificateFile /etc/letsencrypt/live/cockpit.znil.org/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cockpit.znil.org/privkey.pem
SSLProxyEngine On
RequestHeader set Front-End-Https "On"
ProxyPreserveHost On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPass / https://127.0.0.1:9090/
ProxyPassReverse / https://127.0.0.1:9090/
ProxyPass /socket ws://127.0.0.1:9090/socket
ProxyPassReverse /socket ws://127.0.0.1:9090/socket
<Location "/cockpit/socket">
ProxyPass "wss://127.0.0.1:9090/cockpit/socket"
</Location>
</VirtualHost>
Anpassen müsst Ihr
- IP-Adresse (alternativ *:80 und *:443)
- Servernamen
- Pfad zu den Zertifikatsdateien
Nach einem Neustart des Apache sollte es funktionieren.
Kommentare
Loading comments...