0

我最近让我的第一个应用程序在 uWSGI 中与 Cherokee 一起工作。我使用了以下来自uWSGI 文档的代码:

def application(environ, start_response):
  start_response('200 OK', [('Content-Type', 'text/plain')])
  yield 'Hello World\n'

页面正确读取Hello World。当我将该文本更改为New Thing并刷新时,没有任何变化。我忘记了什么?

我试过的:

  1. 清除浏览器历史记录和缓存
  2. 停止和启动切诺基


编辑:为了澄清,我在 Python 代码中更改Hello World为。New Thing然后我停止 Cherokee,刷新,我显然看到了一条错误消息。我重新启动 Cherokee,刷新,我看到了Hello World

4

1 回答 1

2

所以它的工作方式是 Cherokee 在后台为你管理一个正在运行的 uwsgi 实例。到目前为止,我注意到但我还没有看完的是,如果你关闭 Cherokee,它似乎也不会关闭正在运行的 uwsgi 实例。

尝试这个:

sudo service cherokee start
ps aux | grep uwsgi 
# you should see nothing from this ps command

# now hit your web app
sudo service cherokee stop
ps aux | grep uwsgi
# you should see the instance of uwsgi that cherokee started

所以你的应用程序代码实际上是通过 uwsgi 运行的,而 Cherokee 更像是一个代理服务器。为了更新应用程序代码,您需要将 HUP 信号发送到 uwsgi,而不是 Cherkee。

sudo killall -HUP uwsgi

这应该会导致 uwsgi 更新到您的应用程序更改,而不管 Cherokee。

于 2010-06-13T15:36:05.040 回答