roadrage3
Goto Top

Vaultwarden hinter NGINX Reverse Proxy: NGINX Default Website anstatt Vaultwarden

Hallo zusammen,

da wird der Sonntag dafür geopfert den neuen Vaultwarden Server aufzusetzen aber leider komm ich hier gerade nicht mehr weiter.

Host ist n Root Server bei Hetzner im Rechenzentrum. Hab ne fest IPv4 und n IPv6 Subnetz zugeteilt bekommen.
Auf dem Server hab ich gestern Mailcow installiert und das hinter einen NGINX Reverse Proxy gesetzt, da noch der Vaultwarden und eine Nextcloud dazu kommen sollen.
Mailcow Server funktioniert wunderbar, Webseite ist erreichbar, SMTP / IMAP funktioniert alles.

Dann heute den Vaultwarden aufsetzen wollen. NGINX Config nach https://github.com/dani-garcia/vaultwarden/wiki/Proxy-examples erstellt und NGINX neugestartet. Läuft ohne Fehler.
Vaultwarden Docker Compose File erstellt und gestartet. Läuft ebenfalls.
Schaut gut aus, tut wie es soll. Also Browser aufmachen, Vaultwarden aufrufen und konfigurieren... Ne, da kommt ne NGINX Default Webseite und kein Vaultwarden.

Docker Compose gibt an, dass Port 8444 aufm Host an Port 80 aufm Docker weitergegeben wird. Lt.
docker ps -a
hat der Vaultwarden Container den Port 8444 in Beschlag genommen... Wieso also antwortet NGINX mit seiner default Web Site die unter /var/www/html abgelegt ist?

NGINX Config File:
#Vaultwarden
upstream vaultwarden-default {
        zone vaultwarden-default 64k;
        server 127.0.0.1:8444;
                #keepalive 2;
}
map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;  
}
server {
        listen          443 ssl http2;
        listen          [::]:443 ssl http2;
        server_name     vault.TLD;

        ssl_certificate         /opt/ejb-ssl/wildcard.TLD/cert.crt;
        ssl_certificate_key     /opt/ejb-ssl/wildcard.TLD/key.key;
        add_header Strict-Transport-Security "max-age=3153600" always;  

        # Logging
        access_log /var/log/nginx/vault.TLD.access.log;
        error_log /var/log/nginx/vault.TLD.error.log;

        #Reverse Proxy
        location /vault/ {
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
                proxy_set_header Host $Host;
                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  $schema;
                proxy_pass http://vaultwarden-default;
                #proxy_pass http:{{comment_single_line_double_slash:1}}
        }
}
#HTTP redirect to HTTPS
server {
        listen          80;
        listen          [::]:80;
        server_name     vault.TLD;
        if ($host = TLD) {
                return 301 https://vault.TLD$request_uri;
        }
        return 404;
}

Vaultwarden Docker-Compose File:
version: '3'  

services:
  vaultwarden:
    container_name: vaultwarden
    image: vaultwarden/server:latest
    restart: unless-stopped
    volumes:
      - ./vw-data/:/data/
    ports:
      - 8444:80
      - 3012:3012
    environment:
      - LOG_FILE=/data/vaultwarden.log
      - WEBSOCKET_ENABLED=true
      - DOMAIN=https://vault.TLD/vault

Hier ist sicher ein NGINX Experte dabei der mir meinen Fehler aufzeigen kann. Wäre ich super dankbar für.

Vorab schonmal schönen Sonntag face-smile

Ben

Content-ID: 6298278346

Url: https://administrator.de/contentid/6298278346

Printed on: October 6, 2024 at 19:10 o'clock

commodity
commodity Dec 03, 2023 at 13:26:59 (UTC)
Goto Top
Ich bin kein Nginx-Experte face-smile
IMO hast Du aber den Reverse-Proxy falsch konfiguriert. Die proxy-pass-Rule muss auf Server:Port zeigen, wobei Server der Docker-Host und Port hier 8444 wäre.
Vielleicht verständlich beschrieben hier.

Viele Grüße, commodity
RoadRage3
RoadRage3 Dec 03, 2023 at 13:51:18 (UTC)
Goto Top
Zitat von @commodity:
Ich bin kein Nginx-Experte face-smile
IMO hast Du aber den Reverse-Proxy falsch konfiguriert. Die proxy-pass-Rule muss auf Server:Port zeigen, wobei Server der Docker-Host und Port hier 8444 wäre.
Vielleicht verständlich beschrieben hier.

Der Upstream Block kann auch lt. https://nginx.org/en/docs/http/ngx_http_upstream_module.html für Proxy_Pass verwendet werden. Des weiteren ist es auch so in der Doku zu Vaultwarden hinterlegt.

Viele Grüße, commodity
RoadRage3
Solution RoadRage3 Dec 03, 2023 at 13:54:26 (UTC)
Goto Top
Hab eben Pause gemacht und nochmal weiter Suchmaschinen befragt. Bin dabei auf https://dev.to/danielkun/nginx-everything-about-proxypass-2ona gestoßen. Als er da erwähnt hat, dass die Slashes in den Konfigurationen sehr wichtig sind hab ich mir das nochmal genauer angeschaut.

Hab @commodity's Tipp dennoch angewandt und die 127.0.0.1:8444 als Proxy_pass eingetragen. Und dann das oben mit dem Slash. Hab den Slash noch hinzugefügt und zack, läuft...

Dafür hab ich jetzt zwei Stunden gebraucht.... Wegen einem Slash....
aqui
aqui Dec 03, 2023 at 14:01:53 (UTC)
Goto Top
Wegen einem Slash....
Autsch! Der Dativ ist dem Genitiv sein Tod!
commodity
commodity Dec 03, 2023 at 16:47:08 (UTC)
Goto Top
Der Dativ ist dem Genitiv sein Tod!
sic!

Viele Grüße, commodity
Th0mKa
Th0mKa Dec 03, 2023 at 19:23:20 (UTC)
Goto Top
Quote from @aqui:
Autsch! Der Dativ ist dem Genitiv sein Tod!

Lustige Buchreihe von Bastian Sick, die Zwiebelfisch Kolumnen auf Spiegel Online waren in der Mittagspause auch immer sehr unterhaltsam.

/Thomas