0

我正在尝试使用 Nginx 在 fcgi 上仅使用一个实例来服务多个 django 项目。

我看到 django 使用 DJANGO_SETTINGS_MODULE 来处理正确的项目,但我不能告诉他在运行时选择一个特定的项目。

我试过 ./manage.py --settings=SETTINGS 但只有当你开始这个过程并且它不能动态改变。

我也在 nginx 上试过这个:

location /foo {
  fastcgi_split_path_info   ^()(.*)$;
  fastcgi_param             DJANGO_SETTINGS_MODULE foo.settings;
  fastcgi_param             PATH_INFO $fastcgi_script_name;
  include                   fastcgi_params;
  fastcgi_pass              127.0.0.1:8080;
}

location /bar {
  fastcgi_split_path_info   ^()(.*)$;
  fastcgi_param             DJANGO_SETTINGS_MODULE bar.settings;
  fastcgi_param             PATH_INFO $fastcgi_script_name;
  include                   fastcgi_params;
  fastcgi_pass              127.0.0.1:8080;
}

但是当我打印 DJANGO_SETTINGS_MODULE 时,它始终是默认值。

那么,任何人都知道如何将特定的 URL 重定向到特定的 django 项目?

谢谢你。

4

2 回答 2

1

DJANGO_SETTINGS_MODULE请求之间不能变化。您必须为每个站点运行一个 fastcgi 服务器。例如 foo on127.0.0.1:8080和 bar on 127.0.0.8081

于 2012-11-13T14:27:30.293 回答
0

我发现了一篇不错的博客文章,因为我想弄清楚如何在一台服务器上拥有多个 djnago 项目:

http://www.neuraladvance.com/2011/03/29/django-nginx-fastcgi-daemontools/

于 2012-11-23T13:45:59.447 回答