Webserver für den Zugriff auf Repetier-Server

Auf dieser Seite zeigen wir, wie du einen Webserver vor den Server setzen kannst. Dies ermöglicht die Verwendung von Standard-Ports und auch andere Tricks wie das Hinzufügen von Verschlüsselung auf dem Server. Dieses Beispiel wird auf einem Raspberry Pi 3 mit Raspian Jessie und Nginx durchgeführt. Für andere Betriebssysteme musst du die Befehle möglicherweise entsprechend anpassen, aber das Konzept bleibt das gleiche.

Installation der erforderlichen Software

sudo apt-get update
sudo apt-get install nginx

Anpassung der nginx-Konfiguration

Bei der Installation wird eine Standardsite erstellt. Wir nehmen diese Datei

sudo nano /etc/nginx/sites-available/default

um folgendermaßen aussehen:

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        # Größere Uploads zulassen
        client_max_body_size 1000m;
        server_name _;
        access_log  off;
        error_log off;
        location / {
                proxy_pass http://127.0.0.1:3344;
        }
        location /socket/ {
                proxy_pass http://127.0.0.1:3344/socket/;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_read_timeout 86400;
        }
        # Das Drucker-Frontend benötigt kein Passwort, also verbieten wir es von außen.
        location /mod/front/ {
                deny all;
        }
        location /modules/front2/ {
                deny all;
        }
}

Und dann starte nginx neu:

service nginx restart

Jetzt kannst du auf die IP-Adresse des Servers verweisen, ohne einen Port hinzuzufügen.

Hinzufügen von https-Unterstützung

Wenn du vorhast, von außerhalb deines lokalen Netzwerks auf den Server zuzugreifen, ist es ratsam, den Zugriff mit https zu schützen. Dazu ist die Installation eines Zertifikats erforderlich. In diesem Beispiel erstellen wir unser eigenes Zertifikat, da dies eine einfache und kostenlose Möglichkeit ist, unseren Server zu schützen. Die Browser werden sich über dieses Zertifikat beschweren. Nicht, weil es unsicher ist, sondern weil sie nicht überprüfen können, wer es ausgestellt hat. Da du aber weißt, dass du es ausgestellt hast, ist es sicher, das Zertifikat in deinem Zertifikatspeicher abzulegen, damit sich sich dein Browser nicht mehr beschwert.

Lass uns also unser Zertifikat erstellen:

apt-get install ssl-cert
make-ssl-cert generate-default-snakeoil --force-overwrite

Jetzt ändern wir die Standardkonfiguration so, dass sie wie folgt aussieht:

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        listen 443 ssl;
        # Größere Uploads zulassen
        client_max_body_size 1000m;
        # Selbstsigniertes Zertifikat
        ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
        ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

        server_name _;
        access_log  off;
        error_log off;

        location / {
                proxy_pass http://127.0.0.1:3344;
        }
        location /socket/ {
                proxy_pass http://127.0.0.1:3344/socket/;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_read_timeout 86400;
        }
        # Das Drucker-Frontend benötigt kein Passwort, also verbieten wir es von außen.
        location /mod/front/ {
                deny all;
        }
        location /modules/front2/ {
                deny all;
        }
}

und starte dann nginx neu:

service nginx restart

Das ist alles. Jetzt kannst du hiermit auf den Server zugreifen:

https://<Deine IP-Adresse>