更改Nginx代理傳遞公共路徑

更改Nginx代理傳遞公共路徑

/videos我的 Debian 伺服器上運行著一個帶有唯一端點的 Python/Django API 。

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嘗試不同的尾部斜杠配置,但沒有成功。我在這裡缺少什麼?locationproxy_pass

編輯:更準確地說:

  • 將虛擬主機更改為location /myapp->https://example.com/my_app/videos顯示“未找到”錯誤(不是來自 Nginx)

  • 將虛擬主機更改為location /my_app/->https://example.com/my_app/videos重定向到https://example.com/videos/並顯示 404 Not Found 錯誤(來自 Nginx)

相關內容