Nginx uswgi django子路径,不带uwsgi_修饰符130;

Nginx uswgi django子路径,不带uwsgi_修饰符130;,django,nginx,uwsgi,Django,Nginx,Uwsgi,我必须部署一个在子路径下运行的django应用程序 这是我的uswgi.ini文件: [uwsgi] socket = :3031 http= :9000 chdir = . wsgi-file = docker.wsgi processes = 4 threads = 2 stats = :9191 enable-threads = true 这是我的nginx conf文件 server { location /my/subpath { include uwsgi_

我必须部署一个在子路径下运行的django应用程序

这是我的uswgi.ini文件:

[uwsgi]
socket = :3031
http= :9000
chdir = .
wsgi-file = docker.wsgi
processes = 4
threads = 2
stats = :9191
enable-threads = true
这是我的nginx conf文件

server {
    location /my/subpath {
        include uwsgi_params;
        uwsgi_pass django:3031;
    }
}
现在,使用此配置,django无法匹配URL,因为它希望在
/
处接受请求,而不是在
/my/subpath

如果我将nginx conf修改为:

server {
    location /my/subpath {
        include uwsgi_params;
        uwsgi_pass django:3031;
        uwsgi_param SCRIPT_NAME /my/subpath;
        uwsgi_modifier1 30;
    }
}
它可以工作,但是

注:古代uWSGI版本用于支持所谓的 “uwsgi_modifier1 30”进近。不要这样做。这是一个非常丑陋的黑客 ()

我不知道如何配置nginx使其工作

从uwsgi的文档中可以使用
mount
point,但即使这样,我也不知道应该如何更改uwsgi.ini文件以使其工作


老实说,如果可能的话,我只想修复nginx文件,而不想修复uwsgi.ini。

我也遇到了同样的问题,但我通过向
uswgi.ini
文件中添加以下行解决了问题:

mount = /api=<project_name>.wsgi:application
manage-script-name = true
mount=/api=.wsgi:应用程序
管理脚本名称=true