django中有nginx和fcgi的多个站点

时间:2012-11-13 14:21:24

标签: python django nginx

我正在尝试使用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项目?

谢谢。

2 个答案:

答案 0 :(得分:1)

DJANGO_SETTINGS_MODULE不能在请求之间变化。您必须为每个站点运行一个fastcgi服务器。例如,127.0.0.1:8080上的foo和127.0.0.8081上的栏。

答案 1 :(得分:0)

我找到了一篇不错的博文,因为我想知道如何在一台服务器上安装多个django项目:

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