uwsgi 运行两个django 项目,urlconf 偶尔互相乱串,求解

2013-05-31 13:38:36 +08:00
 jezal
uwsgi 运行两个django project,一个是 engine,一个是 link,都在 /home/jason/ 下。
访问 link 的时候,系统偶尔会载入 engine.url,访问 engine 的时候,系统偶尔会载入 link.url,导致出错。

相关配置文件:
#engine 项目 settings url配置如下:
ROOT_URLCONF = 'engine.urls'

nginx 的conf配置如下:
location / {
root /home/jason/link;
index index.html index.htm;
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;

uwsgi_param UWSGI_PYHOME /usr;
uwsgi_param UWSGI_CHDIR /home/jason/link;
uwsgi_param UWSGI_SCRIPT django-uwsgi;
}

#link 项目 settings url 配置如下:
ROOT_URLCONF = 'link.urls'

nginx 的conf配置如下:
location / {
root /home/jason/link;
index index.html index.htm;
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;

uwsgi_param UWSGI_PYHOME /usr;
uwsgi_param UWSGI_CHDIR /home/jason/link;
uwsgi_param UWSGI_SCRIPT django-uwsgi;
}
3740 次点击
所在节点    Django
11 条回复
yueyoum
2013-05-31 13:42:26 +08:00
KISS

不同项目用独立的 uwsgi 来跑
jezal
2013-05-31 13:47:45 +08:00
@yueyoum 我是一个uwsgi hold 两个 django 项目,执行语句如下:
uwsgi -s :9090 -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log --vhost

以前没有这种问题,自从我把 python2.6.6 升级到 python2.7.3,重装了uwsgi,就这样了。
求若干项目用一个 uwsgi 来跑的解决方面。

谢谢楼上。
BOYPT
2013-05-31 13:51:13 +08:00
uwsgi的vhost不是很靠谱,看着办吧……
chon
2013-05-31 13:54:19 +08:00
第一个项目的目录怎么也是 root /home/jason/link; ?
jezal
2013-05-31 14:00:43 +08:00
@chon 贴错了,不好意思。第一个项目 engine 配置文件上是:

location / {
root /home/jason/engine;
index index.html index.htm;
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;

uwsgi_param UWSGI_PYHOME /usr;
uwsgi_param UWSGI_CHDIR /home/jason/engine;
uwsgi_param UWSGI_SCRIPT django-uwsgi;
}
chon
2013-05-31 14:04:07 +08:00
@jezal 那应该是没有问题的,我也是这么部署的,除了socket我用的是uwsgi.sock没用9090端口
jezal
2013-05-31 14:07:23 +08:00
@chon 就是啊,我之前好好的,就是升级了 python,重装了uwsgi 后,这么抽风起来了。不是知道是不是缓存之类的什么问题,这块自己又不是很懂,求高人指点!
risent
2013-05-31 20:23:14 +08:00
@jezal 猜测一下,有可能就是cache导致的,因为Django缓存的时候是按照URL作为key处理的,但是URL中不包含域名,所以如果是不同的域名中有访问相同的路径,并且放在一起的话就可能会出现这种乱串的现象,解决的话很简单,只需在给对应的view加上vary_on_headers这个decorator.

@vary_on_headers('host')
jezal
2013-05-31 23:26:26 +08:00
@risent 貌似不行,在 view 里加上以后,报错:
name 'vary_on_headers' is not defined
jezal
2013-05-31 23:50:03 +08:00
@livid 遇到过类似问题么?知道解决方法么?谢谢!
risent
2013-06-01 10:45:41 +08:00
@jezal 额,这个当然要先import一下呀

from django.views.decorators.vary import vary_on_headers

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/70758

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX