Tôi có một API Python/Django với một điểm cuối duy nhất /video
đang chạy trên máy chủ Debian của tôi.
Nginx vhost trông như thế này:
người phục vụ {
server_name example.com;
địa điểm / {
# Chuyển đến dịch vụ máy chủ web Uvicorn/Gunicorn
proxy_pass http://upstream_name/;
proxy_set_header Máy chủ lưu trữ $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;
}
nghe 443 ssl; # được quản lý bởi Certbot
ssl_certificate /path_to/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key /path_to/privkey.pem; # được quản lý bởi Certbot
bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
}
ngược dòng upstream_name {
máy chủ 127.0.0.1:8002;
}
Do đó, nó phục vụ thành công ứng dụng và điểm cuối duy nhất của nó trên https://example.com/videos
.
Bây giờ, tôi muốn phục vụ ứng dụng trên https://example.com/my_app/videos
, để trong tương lai có một ứng dụng khác được phân phát trên cùng một miền/vhost (với các cổng nội bộ khác nhau, tất nhiên là các hướng ngược dòng khác nhau trong vhost).
Tôi đã đọc một số Q/A tương tự trên ServerFault và đã thử thay đổi địa điểm /
đến vị trí /my_app
, trong khi thử các cấu hình dấu gạch chéo ở cuối khác nhau trên địa điểm
và proxy_pass
, không thành công. Tôi đang thiếu gì ở đây?
CHỈNH SỬA: Chính xác hơn:
Với vhost đã đổi thành vị trí / ứng dụng của tôi
-> https://example.com/my_app/videos
hiển thị lỗi Không tìm thấy (không phải từ Nginx)
Với vhost đã đổi thành vị trí /my_app/
-> https://example.com/my_app/videos
được chuyển hướng đến https://example.com/videos/
và hiển thị lỗi 404 Not Found (từ Nginx)