我要部署在子路径下运行的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无法匹配网址,因为它希望在/
而不是/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”方法。不要做。这是一个非常丑陋的黑客 (source)
我无法理解如何配置nginx以使其正常工作。
从uwsgi的文档中可以使用mount
点,但即便如此,我也无法弄清楚如何更改uwsgi.ini文件以使其正常工作。
老实说,我想只修复nginx文件而不是uwsgi.ini。
答案 0 :(得分:1)
我遇到了同样的问题,但是我通过将以下行添加到uswgi.ini
文件中来解决了该问题:
mount = /api=<project_name>.wsgi:application
manage-script-name = true