3

通常我用的是切诺基。由于最新的 chrome 版本存在一些严重问题,我不得不暂时将我的生产服务器更改为 nginx。

目前正试图让我的配置像在切诺基中一样工作。我正在使用一个非常简单的 uwsgi 处理程序:

    location /project1 {
            include uwsgi_params;
            uwsgi_pass localhost:3032;
    }

工作正常,该项目可在 myurl.com/project1 上找到。但是 django 将 myurl.com 作为项目根目录。

示例我希望它如何工作:一个子域上的多个项目:/project1 上的 project1、/project2 上的 project2 等。

Django 正则表达式规则“^$”应该适用于每个项目,例如:

在 Project1 中:^$ -> /project1

在 Project2 中:^$ -> /project2 等。

有没有办法让这个在 nginx 工作?

干杯,

4

1 回答 1

1

nginx 不会自动将 SCRIPT_NAME 设置为 Cherokee。

你可以强制它

uwsgi_param SCRIPT_NAME /project1;

然后你需要重写 PATH_INFO,uWSGI 可以自动为你设置

uwsgi_modifier1 30

所以完整的nginx配置:

 location /project1 {

        include uwsgi_params;
        uwsgi_param SCRIPT_NAME /project1;
        uwsgi_modifier1 30;
        uwsgi_pass localhost:3032;
}

另一种方法是在 uWSGI 中完成整个工作,将 --manage-script-name 作为选项传递,并且保持 nginx 配置不变。

于 2011-12-23T16:25:59.407 回答