Ich habe eine Python/Django-API mit einem einzigartigen Endpunkt, /videos
der 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 location
und 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/videos
wird ein Fehler „Nicht gefunden“ angezeigt (nicht von Nginx)Mit dem geänderten vhost
location /my_app/
->https://example.com/my_app/videos
wird umgeleitethttps://example.com/videos/
und es wird ein 404 Not Found-Fehler angezeigt (von Nginx)