So lassen Sie einen Proxy-Pass mit demselben Standort und mehreren Kontextpfaden zu

So lassen Sie einen Proxy-Pass mit demselben Standort und mehreren Kontextpfaden zu
server {
    listen 80;
    server_name example.com www.example.com; 
    

Standort /Konsole {

    if ($request_method !~ ^(GET|POST)$) {
        return 405 "Not allowed";
    }
     
    set $consolalb alb.backend;
    proxy_pass http://$consolalb/workspace/;
    
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Custom-Forwarded-Proto $http_x_forwarded_proto;        
    proxy_cache_bypass $http_upgrade;      
    }
}

Ich habe das Szenario, in dem die Benutzeranforderung unseren Ngnix-Container-Reverse-Proxy erreicht.www.example.com/consolund es muss an das Backend-Alb weitergeleitet werden (z. B. alb.backend), und das ALB wird mit dem Kontextpfad /workspace dem Oracle Hyperion-Anwendungsserver zugeordnet.

mit der obigen Konfiguration kann ich die erste Anmeldeseite /workspace/index.jsp laden, gleichzeitig erhalte ich zusätzliche Popups mit unterschiedlichen Kontextpfaden, die eine Fehlermeldung wie „Seite nicht gefunden“ anzeigen. Diese URLs für „Seite nicht gefunden“ sehen so aus:www.example.com/interop,www.example.com/meineseite.jspusw. Alle Popups zeigen die Fehlermeldung „Seite nicht gefunden“ an.

Ich brauche einen Vorschlag, wie ich weiterleiten kannwww.example.com/consoleingehende Benutzeranforderung an http://$consolalb/workspace/; für die erste und nachfolgende Pop-Anforderung an http://$consolalb/*

Antwort1

Ihre Anwendung generiert die URLs in der von ihr erstellten Ausgabe. Daher müssen Sie Ihre Anwendung so konfigurieren, dass sie eine korrekte Basis-URL verwendet, damit die von ihr generierten URLs korrekt sind.

verwandte Informationen