重新启动 CouchDB 时如何避免重新启动 Apache 代理

Jam*_*are 12 proxy couchdb apache-2.2

我在Mac 上使用CouchDBX运行本地 CouchDB 实例,使用ProxyPass指令代理在 Apache 2 后面:

<VirtualHost *:80>
    ServerName playlick # points to localhost in /etc/hosts
    DocumentRoot "/Users/james/Sites/playlick"
    ProxyPass /data http://localhost:5984
    ProxyPassReverse /data http://localhost:5984
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

如果我尝试在我的 Couch 实例未运行http://playlick/data时点击它,我会收到503 Service Temporously Unavailable错误,正如预期的那样。

然后我启动 Couch 服务器并点击相同的 URL,但在我重新启动 Apache 代理之前我仍然收到错误消息。

另一方面,如果我点击该 URL之前启动 Couch 实例,则一切正常,无需接触 Apache。

因此,似乎 503 错误已被缓存,直到 Apache 进程重新启动。我如何阻止这种情况发生?

或者,如果这不可能,当我在 CouchDBX GUI 应用程序中启动 Couch 实例时,如何强制 Apache 重新启动?

Zor*_*che 15

我相信您需要查看的是您可以使用ProxyPass指令传递的重试选项。

重试默认值:60 秒

连接池工作程序重试超时(以秒为单位)。如果到后端服务器的连接池工作线程处于错误状态,则 Apache 将不会将任何请求转发到该服务器,直到超时到期。这使得可以关闭后端服务器进行维护,并在稍后将其重新联机。值 0 表示始终在错误状态下重试工作程序,没有超时。

  • 完美的。这样做了:ProxyPass /data http://localhost:5984 retry=0 (4认同)