Comment éviter de redémarrer le proxy Apache lorsque vous redémarrez CouchDB

12

J'exécute une instance localhost CouchDB à l'aide de CouchDBX sur mon Mac, mandatée derrière Apache 2 à l'aide de la ProxyPassdirective:

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

Si j'essaie de frapper mon instance Couch http://playlick/dataalors qu'elle n'est pas en cours d'exécution, j'obtiens une erreur 503 Service Temporairement indisponible , comme on pourrait s'y attendre.

Je démarre ensuite le serveur Couch et frappe la même URL, mais j'obtiens toujours l'erreur jusqu'à ce que je redémarre le proxy Apache.

Si d'un autre côté, je démarre l'instance Couch avant de toucher cette URL, tout fonctionne bien sans avoir à toucher Apache.

Il semble donc que l'erreur 503 soit mise en cache jusqu'au redémarrage du processus Apache. Comment puis-je empêcher que cela se produise?

OU , si cela n'est pas possible, comment forcer Apache à redémarrer lorsque je démarre l'instance Couch dans l'application GUI CouchDBX?

James Wheare
la source
Comment diable avez-vous réussi à faire fonctionner / data correctement? J'essaie et j'obtiens toujours "Le fichier n'existe pas: [DocumentRoot] / _ all_dbs, referer: localhost / data / _utils / index.html ". Il semble qu'il y ait des problèmes dans jquery.couch.js car ils se réfèrent à "/ _all_dbs" et la suppression du "/" fait apparaître l'erreur ci-dessus par rapport à _utils mais est-ce vraiment un bug ou y a-t-il autre chose que j'ai configurer?
nicerobot

Réponses:

15

Je crois que ce que vous devez rechercher est l'option de nouvelle tentative que vous pouvez passer avec la directive ProxyPass .

réessayer par défaut: 60 secondes

Délai d'attente avant nouvelle tentative du pool de connexions en secondes. Si le travailleur du pool de connexions au serveur principal est dans l'état d'erreur, Apache ne transmettra aucune demande à ce serveur jusqu'à l'expiration du délai. Cela permet d'arrêter le serveur principal pour maintenance et de le remettre en ligne ultérieurement. Une valeur de 0 signifie toujours réessayer les travailleurs dans un état d'erreur sans délai d'expiration.

Zoredache
la source
4
Parfait. Cela l'a fait: ProxyPass / data localhost: 5984 retry = 0
James Wheare
1
Correction du même problème pour le passthrough de node.js apache.
Will Shaver