Как избежать перезапуска прокси-сервера Apache при перезапуске CouchDB


12

Я запускаю экземпляр CouchDB localhost, используя CouchDBX на моем Mac, прокси за Apache 2 с помощью ProxyPassдирективы:

<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>

Если я попытаюсь поразить свой экземпляр Couch в http://playlick/dataто время, когда он не работает, я получаю ошибку 503 Service временно недоступна , как и следовало ожидать.

Затем я запускаю сервер Couch и нажимаю на тот же URL, но все равно получаю сообщение об ошибке, пока не перезапущу прокси-сервер Apache.

Если, с другой стороны, я запускаю экземпляр Couch, прежде чем нажать на этот URL, все работает нормально, не касаясь Apache.

Таким образом, кажется, что ошибка 503 кэшируется, пока процесс Apache не будет перезапущен. Как я могу предотвратить это?

ИЛИ , если это невозможно, как заставить Apache перезагружаться при запуске экземпляра Couch в приложении с графическим интерфейсом CouchDBX?


Как в мире вы когда-либо заставляли / данные работать должным образом. Я пытаюсь и всегда получаю «Файл не существует: [DocumentRoot] / _ all_dbs, referer: localhost / data / _utils / index.html ». Похоже, что в jquery.couch.js есть проблемы, потому что они ссылаются на «/ _all_dbs», а удаление «/» приводит к тому, что приведенная выше ошибка отображается относительно _utils, но это действительно ошибка или есть что-то еще, что у меня есть настроить?
nicerobot

Ответы:


15

Я считаю, что вам нужно обратить внимание на параметр повтора, который вы можете передать с помощью директивы ProxyPass .

повторить попытку по умолчанию: 60 секунд

Время ожидания повторной попытки работника пула соединений в секундах. Если рабочий пул соединений с внутренним сервером находится в состоянии ошибки, Apache не будет пересылать запросы на этот сервер до истечения времени ожидания. Это позволяет отключить сервер бэкэнда для обслуживания, а затем снова включить его. Значение 0 означает всегда повторять попытки рабочих в состоянии ошибки без тайм-аута.


4
Отлично. Это было сделано: ProxyPass / data localhost: 5984 retry = 0
Джеймс Уир

1
Также исправлена ​​та же проблема для apache-узла node.js.
Будет ли бритва
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.