Điểm:0

Thay đổi proxy Nginx vượt qua đường dẫn công khai

lá cờ in

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ểmproxy_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)

lá cờ us
Vui lòng hiển thị cấu hình chính xác mà bạn đã thử và những bước bạn đã thực hiện để tái tạo sự cố?
lá cờ in
@TeroKilkanen Chắc chắn rồi, đã chỉnh sửa.
lá cờ us
Bạn cần định cấu hình URL gốc mới trong ứng dụng của mình. Đối với tôi, lỗi thứ hai có vẻ như ứng dụng của bạn gửi chuyển hướng đến URI `/videos`.
lá cờ in
Bạn nói đúng, nó cần cấu hình ở phía ứng dụng. Tôi đã giải quyết nó bằng cách thêm thông số FORCE_SCRIPT_NAME vào cài đặt của Django. Chính xác hơn, nó cần FORCE_SCRIPT_NAME = '/my_app/' VỚI dấu gạch chéo ở cuối.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.