2

我正在运行 cherokee 以使用 uwsgi 为 django 应用程序提供服务。自从升级到 cherokee 1.2.x 后,我一直有一些奇怪的行为。

该设置在 cherokee 1.2.x 之前运行良好,我没有更改任何配置。

问题是现在,当 uwsgi 没有运行并且我尝试加载 django 应用程序站点时,我首先收到 503 错误。后续请求工作正常。查看日志,我看到 cherokee 正在生成多个 uwsgi 实例,这似乎是问题所在。

我在这里发布了 cherokee.error 日志

看来 cherokee 正在产生多个 uwsgi 实例:

probably another instance of uWSGI is running on the same address.

我对 uwsgi 的配置是:

<pidfile>/home/my_home/my_project/uwsgi.pid</pidfile>
<vacuum />
<processes>4</processes>
<harakiri>30</harakiri>
<master />

问题的另一个症状是在 503 和随后成功启动 uwsgi 之后,我没有 PID 文件。这是因为 uwsgi 的其他实例启动然后失败,在它们退出时会删除 PID 文件:

binding on TCP port: 45611
probably another instance of uWSGI is running on the same address.
bind(): Address already in use [socket.c line 341]
VACUUM: pidfile removed.

所以总的来说,问题是:

  • 切诺基启动uwsgi后第一个视图显示503
  • 没有创建 PID 文件(或者说它正在创建但立即被另一个退出的 uwsgi 进程删除)

谷歌搜索probably another instance of uWSGI is running on the same address仅与 uwsgi 源代码匹配,所以看来我是唯一遇到这种情况的人。

我在具有相同设置的多台计算机上遇到同样的问题。

有任何想法吗?

软件版本:

  • uWSGI 0.9.6.2
  • 切诺基 1.2.1
  • Django 开发主干(介于 1.3 rc 和 1.3 之间)
4

1 回答 1

1

看起来这是在树干中修复的切诺基错误:

http://svn.cherokee-project.com/listing.php?repname=Cherokee&peg=6382&rev=6380

我从 SVN 下载了中继,我不再遇到问题。

于 2011-03-16T13:04:47.547 回答