Eigene Domain mit NGINX Reverse Proxy

Last change on 2025-03-17 • Created on 2025-03-17 • ID: ST-D327F

Aktuell ist es nicht möglich, einem Bucket einen eigenen Domainnamen zuzuweisen. Wenn Sie für Ihren Bucket dennoch eine eigene Domain verwenden möchten, können Sie manuell eine Weiterleitung einrichten.

In diesem How-To wird erklärt, wie man auf einem Debian-basierten System eine Weiterleitung über den NGINX Reverse Proxy einrichtet.

Voraussetzungen:

  • Eine eigene Domain
  • Einen Server mit öffentlicher IP-Adresse
  • Einen Bucket mit öffentlichen Daten

Am Ende dieses How-Tos sollte der Server alle Anfragen an Ihre Domain direkt an den Bucket weiterleiten.


  1. DNS-Eintrag erstellen

    Erstellen Sie einen neuen DNS Record. Die Domain muss auf die IP-Adresse des Servers verweisen, auf dem der NGINX Reverse Proxy eingerichtet wird.

    Beachten Sie, dass es mehrere Stunden dauern kann, bis die Änderung vollständig übernommen wurde.


  1. NGINX installieren

    Verbinden Sie sich nun mit dem Server und prüfen Sie, ob NGINX bereits auf Ihrem Server installiert ist. Wenn nicht, installieren Sie es jetzt:

    sudo apt update && sudo apt install nginx -y
    nginx -v

  1. NGINX-Konfiguration einrichten

    Erstellen Sie eine neue Konfigurationsdatei, um den Reverse Proxy einzurichten:

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

    Fügen Sie nun eine der folgenden Konfigurationen ein:

    • Ohne SSL-Zertifikat:

      Ersetzen Sie example.com mit Ihrer Domain und <bucket_name>.<region> mit dem Namen und der Region Ihres Buckets.

      server {
          listen 80;
          server_name example.com;
      
          location / {
              proxy_pass https://<bucket_name>.<region>.your-objectstorage.com;
      
              proxy_set_header Host <bucket_name>.<region>.your-objectstorage.com;
              proxy_set_header X-Forwarded-Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
      }
    • Mit SSL-Zertifikat:

      Ersetzen Sie example.com mit Ihrer Domain und <bucket_name>.<region> mit dem Namen und der Region Ihres Buckets.
      Passen Sie außerdem den Pfad unter ssl_certificate an, um auf Ihr eigenes Zertifikat zu zeigen.

      server {
          listen 80;
          server_name example.com;
      
          location / {
              return 301 https://$host$request_uri;
          }
      }
      
      server {
          listen 443 ssl;
          server_name example.com;
      
          ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
      
          location / {
              proxy_pass https://<bucket_name>.<region>.your-objectstorage.com;
      
              proxy_set_header Host <bucket_name>.<region>.your-objectstorage.com;
              proxy_set_header X-Forwarded-Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
      }

  1. Änderungen anwenden

    sudo ln -s /etc/nginx/sites-available/bucket /etc/nginx/sites-enabled/bucket
    sudo rm /etc/nginx/sites-available/default && sudo rm /etc/nginx/sites-enabled/default
    sudo nginx -t
    sudo systemctl reload nginx

Wenn Sie nun auf Ihre Domain zugreifen, sollte die Verbindung vom Server automatisch auf den Bucket weitergeleitet werden.