У меня есть API Python/Django с уникальной конечной точкой, /videos
работающей на моем сервере Debian.
Виртуальный хост Nginx выглядит так:
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;
}
Таким образом, он успешно обслуживает приложение и его уникальную конечную точку на https://example.com/videos
.
Теперь я хотел бы обслуживать приложение на https://example.com/my_app/videos
, чтобы в будущем иметь другие приложения, обслуживаемые на том же домене/виртуальном хосте (с другими внутренними портами, другими восходящими потоками в виртуальном хосте, конечно).
Я читал несколько похожих вопросов/ответов на ServerFault и пытался изменить location /
на location /my_app
, одновременно пробуя разные конфигурации завершающих слешей на location
и proxy_pass
, но безуспешно. Что я здесь упускаю?
EDIT: Точнее:
При изменении vhost на
location /myapp
->https://example.com/my_app/videos
отображается ошибка Not Found (не от Nginx)При изменении vhost на
location /my_app/
->https://example.com/my_app/videos
происходит перенаправлениеhttps://example.com/videos/
и отображается ошибка 404 Not Found (из Nginx)