【问题标题】:Nginx: Multiple Django Projects with project root?Nginx:具有项目根目录的多个 Django 项目?
【发布时间】:2012-01-26 19:42:11
【问题描述】:

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

目前正试图让我的配置像在 cherokee 中一样工作。 我正在使用一个非常简单的 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 工作?

干杯,

【问题讨论】:

  • Multiple projects on one subdomain: project1 on /project1, project2 on /project2, etc. :那些不是子域,而是子文件夹。完全不同的事情。如果你制作了虚拟主机和真正的子域,一切都会容易得多
  • 我喜欢:apps.myydomain.com/project1、apps.mydomain.com/project2 = 一个子域上的多个项目

标签: django nginx uwsgi


【解决方案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 配置不变。

【讨论】:

    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多