Nginx uswgi django子路径,不带uwsgi_修饰符130;
我必须部署一个在子路径下运行的django应用程序 这是我的uswgi.ini文件: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_
[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