【发布时间】:2020-08-24 23:59:10
【问题描述】:
我必须部署一个在子路径下运行的 django 应用程序。
这是我的 uswgi.ini 文件:
[uwsgi]
socket = :3031
http= :9000
chdir = .
wsgi-file = docker.wsgi
processes = 4
threads = 2
stats = :9191
enable-threads = true
这是我的 nginx 配置文件
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”方法。不要做。这是一个非常丑陋的黑客 (source)
我不知道如何配置 nginx 以使其正常工作。
从 uwsgi 的文档中可以使用mount 点,但即使这样我也无法弄清楚我应该如何更改 uwsgi.ini 文件以使其正常工作。
老实说,如果可能的话,我只想修复 nginx 文件而不是 uwsgi.ini。
【问题讨论】: