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


12

我正在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>

如果在未运行http://playlick/data时尝试在其Couch实例上运行,则会收到503 Service Temporally Unavailable错误,这是预期的。

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

另一方面,如果我在访问该URL 之前启动了Couch实例,则一切正常,而无需接触Apache。

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

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


您究竟是如何获得/ data才能正常工作的。我尝试并始终得到“文件不存在:[DocumentRoot] / _ all_dbs,引荐来源:localhost / data / _utils / index.html ”。看来jquery.couch.js中存在问题,因为它们引用了“ / _all_dbs”,并且删除了“ /”确实使上述错误相对于_utils出现了,但这确实是一个bug还是我还有其他问题配置?
nicerobot

Answers:


15

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

重试默认值:60秒

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


4
完善。做到了:ProxyPass / data localhost:5984 retry = 0
James Wheare 09年

1
还修复了node.js apache passthrough的相同问题。
Will Shaver 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.