Öffentlichen Pfad des Nginx-Proxy-Passes ändern

Öffentlichen Pfad des Nginx-Proxy-Passes ändern

Ich habe eine Python/Django-API mit einem einzigartigen Endpunkt, /videosder auf meinem Debian-Server läuft.

Der Nginx-Vhost sieht folgendermaßen aus:

server {

    server_name example.com;

    location / {
        # Pass to Uvicorn/Gunicorn web server service
        proxy_pass http://upstream_name/;
        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 $scheme;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /path_to/fullchain.pem; # managed by Certbot
    ssl_certificate_key /path_to/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

upstream upstream_name {
    server 127.0.0.1:8002;
}

Somit wird die App und ihr eindeutiger Endpunkt erfolgreich bereitgestellt https://example.com/videos.

Jetzt möchte ich die App auf bereitstellen https://example.com/my_app/videos, um in Zukunft andere Apps auf derselben Domäne/dem gleichen virtuellen Host bereitzustellen (natürlich mit unterschiedlichen internen Ports und unterschiedlichen Upstreams im virtuellen Host).

Ich habe mehrere ähnliche Fragen und Antworten zu ServerFault gelesen und habe versucht, location /zu zu wechseln location /my_app, während ich verschiedene Konfigurationen mit abschließenden Schrägstrichen auf locationund ausprobiert habe proxy_pass, ohne Erfolg. Was übersehe ich hier?

EDIT: Genauer:

  • Wenn der vhost geändert wurde location /myapp-> https://example.com/my_app/videoswird ein Fehler „Nicht gefunden“ angezeigt (nicht von Nginx)

  • Mit dem geänderten vhost location /my_app/-> https://example.com/my_app/videoswird umgeleitet https://example.com/videos/und es wird ein 404 Not Found-Fehler angezeigt (von Nginx)

verwandte Informationen