Konfigurieren der Nginx-Umleitung vom Root-Zugriff

Konfigurieren der Nginx-Umleitung vom Root-Zugriff

Ich versuche, nginx zu konfigurieren, aber trotz mehrerer Versuche gelingt es mir nicht, es zum Laufen zu bringen. Was ich brauche, ist:

  • Port 80, /downloadwird von nginx bedient
  • Port 80, alles andere wird auf die gleiche Maschine umgeleitet, Port 8080

Das funktioniert gut, aber jetzt brauche ich das nur im Fall der Wurzel (http://meinhost/) wird der Client zur Standard-App umgeleitet /Games. Meine aktuelle Konfiguration ist falsch und leitet mich in eine Endlosschleife um. Ich habe einige Ideen vonHieraber es hat nicht funktioniert. Beispiele für die Weiterleitungen:

ex1: http://myhost/  --> http://myhost/Games --> http://localhost:8080/Games
ex2: http://myhost/Books --> http://localhost:8080/Books

Ich habe versucht

        location / {
            proxy_pass  http://localhost:8080/Games;
        }

Dies scheint jedoch auf alles zu wirken (z. B. /Books, /XYZ, ...). Ich denke, eine Umleitung mit Angabe der genauen Stammadresse ist am saubersten.

Außerdem muss ich dies auf HTTPS replizieren. Ich nehme an, dass dies auch über das „Stream“-Element funktionieren wird.


nginx.conf:

http {
    server {
        listen  80;
        root /home/www/;
        location = / {
            return 301 http://$host/Games;
        }
        location / {
            proxy_pass  http://localhost:8080;
        }
        location /download/ {
            ....
        }
    }
}

stream {
    server {
        listen  443;
        ...
    }   
} 

Antwort1

Was genau ist hier die Frage? Deine Konfiguration funktioniert bei mir:

server {
    listen 80;
    listen [::]:80;

    server_name 192.168.0.2;
    root /var/www;

    location = / {
        return 301 http://$host/folder;
    }

    location / {
        proxy_pass http://otherserver:80;
    }
}

Protokolle:

[22/Feb/2018:17:04:55 +0100] "GET / HTTP/1.1" 301
[22/Feb/2018:17:04:55 +0100] "GET /folder HTTP/1.1" 301
[22/Feb/2018:17:04:55 +0100] "GET /folder/ HTTP/1.1" 200
[22/Feb/2018:17:11:29 +0100] "GET /index.html HTTP/1.0" 200

Was sehen Sie in Ihren Protokollen? Können Anfragen überhaupt nicht weitergeleitet werden oder verursacht der lokale Host das Problem? Wie sieht die Konfiguration Ihres lokalen Hosts aus? Es gibt zu wenig Informationen, um Ihnen helfen zu können.

Außerdem muss ich dies auf HTTPS replizieren. Ich nehme an, dass dies auch über das „Stream“-Element funktionieren wird.

Ich bin nicht sicher, was Sie meinen, aber Sie können einfach einen weiteren Serverblock mit derselben Konfiguration listen 443anstelle von hinzufügen listen 80und die SSL-Direktiven hinzufügen.

verwandte Informationen