【问题标题】:Nginx uswgi django subpath without uwsgi_modifier1 30;没有 uwsgi_modifier1 30 的 Nginx uswgi django 子路径;
【发布时间】: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。

【问题讨论】:

    标签: django nginx uwsgi


    【解决方案1】:

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

    mount = /api=<project_name>.wsgi:application
    manage-script-name = true
    

    【讨论】:

      猜你喜欢
      • 2014-05-03
      • 2019-09-02
      • 2017-02-04
      • 2017-10-10
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多