Come evitare il riavvio del proxy Apache quando si riavvia CouchDB


12

Sto eseguendo un'istanza di CouchDB localhost utilizzando CouchDBX sul mio Mac, proxy dietro Apache 2 utilizzando la ProxyPassdirettiva:

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

Se provo a colpire la mia istanza di Couch http://playlick/datamentre non è in esecuzione ottengo un errore 503 di servizio temporaneamente non disponibile , come ci si aspetterebbe.

Quindi avvio il server Couch e premo lo stesso URL, ma ottengo ancora l'errore fino a quando non riavvio il proxy Apache.

Se d'altra parte, avvio l'istanza di Couch prima di colpire quell'URL, tutto funziona bene senza dover toccare Apache.

Quindi sembra che l'errore 503 venga memorizzato nella cache fino al riavvio del processo Apache. Come posso impedire che ciò accada?

OPPURE , se ciò non è possibile, come posso forzare il riavvio di Apache all'avvio dell'istanza di Couch nell'app GUI di CouchDBX?


Come mai nel mondo hai ottenuto / dati per funzionare correttamente. Provo e ottengo sempre "Il file non esiste: [DocumentRoot] / _ all_dbs, referer: localhost / data / _utils / index.html ". Sembra che ci siano problemi in jquery.couch.js perché si riferiscono a "/ _all_dbs" e la rimozione di "/" fa apparire l'errore sopra riportato come relativo a _utils ma è davvero un bug o c'è qualcos'altro che ho configurare?
Nicerobot,

Risposte:


15

Credo che ciò di cui hai bisogno sia l'opzione di riprovare che puoi passare con la direttiva ProxyPass .

riprova impostazione predefinita: 60 secondi

Timeout tentativi lavoratore pool di connessione in secondi. Se il lavoratore del pool di connessioni al server back-end si trova nello stato di errore, Apache non inoltrerà alcuna richiesta a quel server fino alla scadenza del timeout. Ciò consente di arrestare il server back-end per manutenzione e riportarlo online in un secondo momento. Un valore pari a 0 significa riprovare i lavoratori in uno stato di errore senza timeout.


4
Perfetto. Lo ha fatto: ProxyPass / data localhost: 5984 retry = 0
James Wheare,

1
Risolto anche lo stesso problema per il passthrough apache node.js.
Will Shaver,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.