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 du für deinen Bucket dennoch eine eigene Domain verwenden möchtest, kannst du 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

Wenn du am Ende deine Domain aufrufst, sollte der Server alle Anfragen direkt an deinen Bucket weiterleiten.


  1. DNS-Eintrag erstellen

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

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


  1. NGINX installieren

    Verbinde dich nun mit dem Server und prüfe, ob NGINX bereits auf deinem Server installiert ist. Wenn nicht, installiere es jetzt:

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

  1. NGINX-Konfiguration einrichten

    Erstelle eine neue Konfigurationsdatei, um den Reverse Proxy einzurichten:

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

    Füge nun eine der folgenden Konfigurationen ein:

    • Ohne SSL-Zertifikat:

      Ersetze example.com mit deiner Domain und <bucket_name>.<region> mit dem Namen und der Region deines 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:

Ersetze example.com mit deiner Domain und <bucket_name>.<region> mit dem Namen und der Region deines Buckets.

  > Passe außerdem den Pfad unter `ssl_certificate` an, um auf dein eigenes Zertifikat zu zeigen.
 
 ```conf
 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 du nun auf deine Domain zugreifst, sollte die Verbindung vom Server automatisch auf den Bucket weitergeleitet werden.