Headscale: nginx Reverse-Proxy-Konfiguration

English Deutsch

Reverse-Proxying von Headscale mit nginx ist extrem einfach. Du brauchst keine spezielle Konfiguration.

Hier ist meine Konfiguration mit aktiviertem Let’s Encrypt (Teile der Konfiguration werden automatisch mit certbot --nginx generiert).

Stelle sicher, dass der Port (27896) mit dem übereinstimmt, der dem Headscale-Port zugeordnet ist.

headscale-nginx-reverse-proxy-config.txt
server {
    server_name  headscale.mydomain.com;

    location / {
        proxy_pass http://localhost:27896/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_redirect http:// https://;
        proxy_buffering off;
        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 $http_x_forwarded_proto;
        add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
    }

    listen [::]:443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mydomain-wildcard/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain-wildcard/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot


}
server {
    if ($host = headscale.mydomain.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    server_name  headscale.mydomain.com;

    listen [::]:80; # managed by Certbot
    return 404; # managed by Certbot
}

Das proxy_… Upgrade-Zeug ist für das Proxying von WebSockets. Ich habe keine Ahnung, ob es erforderlich ist oder nicht, da ich es nicht ausprobiert habe, aber es schadet auch nicht, es drinzulassen.


Check out similar posts by category: Headscale, Networking, Nginx