Probleme mit Nginx, das 302/307 statt 200/500 zurückgibt

Probleme mit Nginx, das 302/307 statt 200/500 zurückgibt

Ich verwende Nginx zum Lastenausgleich/Reverse-Proxy einer Website.

Das Setup besteht aus 1 Maschine zum Lastenausgleich und 3 Maschinen zum Hosten der Webinhalte.

Die Site-Konfiguration ist wie folgt:

  upstream api_app {
    least_conn;
    server sfront1.mydomain.org:5000;
    server sfront2.mydomain.org:5000;
    server sfront3.mydomain.org:5000;


  }
   server {
    listen        80;
    listen        [::]:80;
    server_name   mydomain.org www.mydomain.org;
    location / {
        proxy_pass         http://api_app;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
    location /images {
        alias /home/images/mangas;
        try_files $uri /404Cover.jpg;
   }
    location /Images {
        alias /home/images/mangas;
        try_files $uri /404Cover.jpg;
   }
   location /Covers {
        alias /home/images/light-novels;
        try_files $uri /404Cover.jpg;
   }
  }

  server {
    listen   80 default_server;
    # listen [::]:80 default_server deferred;
    return   444;
  }

Jetzt habe ich die Protokolle der Clients dieser API überprüft und sie erhalten zufällig 302/307 HTTP-Antworten.

Jetzt bin ich ziemlich sicher, dass das Backend diese nicht gesendet hat. Es liegt also wahrscheinlich an Nginx.

Irgendeine Idee, was diese Antworten sein könnten? Warum scheinen sie völlig zufällig zu sein?

Beide Nginx/Backends funktionieren nur in HTTP. Nicht in https.

Könnte dies etwas mit den beiden Zeilen in der Konfiguration zu tun haben, die ich nicht ganz verstehe:

proxy_set_header   Upgrade $http_upgrade;
proxy_cache_bypass $http_upgrade;

verwandte Informationen