Cómo evitar reiniciar el proxy Apache cuando reinicia CouchDB


12

Estoy ejecutando una instancia de CouchDB localhost usando CouchDBX en mi Mac, proxy detrás de Apache 2 usando la ProxyPassdirectiva:

<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 intento acceder a mi instancia de Couch http://playlick/datamientras no se está ejecutando , obtengo un error 503 de servicio temporalmente no disponible , como era de esperar.

Luego inicio el servidor Couch y presiono la misma URL, pero sigo recibiendo el error hasta que reinicio el proxy Apache.

Si, por otro lado, inicio la instancia de Couch antes de presionar esa URL, todo funciona bien sin tener que tocar Apache.

Por lo tanto, parece que el error 503 se almacena en caché hasta que se reinicia el proceso de Apache. ¿Cómo evito que esto suceda?

O , si eso no es posible, ¿cómo forzo a Apache a reiniciarse cuando inicio la instancia de Couch en la aplicación CouchDBX GUI?


¿Cómo en el mundo conseguiste que los datos funcionen correctamente? Intento y siempre obtengo "El archivo no existe: [DocumentRoot] / _ all_dbs, referente: localhost / data / _utils / index.html ". Parece que hay problemas en jquery.couch.js porque se refieren a "/ _all_dbs" y eliminar "/" hace que el error anterior aparezca como relativo a _utils, pero ¿es realmente un error o hay algo más que tengo? ¿para configurar?
nicerobot

Respuestas:


15

Creo que lo que debe mirar es la opción de reintento que puede pasar con la directiva ProxyPass .

reintento predeterminado: 60 segundos

El trabajador del grupo de conexiones vuelve a intentar el tiempo de espera en segundos. Si el trabajador del grupo de conexiones al servidor de fondo está en estado de error, Apache no reenviará ninguna solicitud a ese servidor hasta que caduque el tiempo de espera. Esto permite cerrar el servidor back-end por mantenimiento y volver a ponerlo en línea más tarde. Un valor de 0 significa siempre reintentar a los trabajadores en un estado de error sin tiempo de espera.


44
Perfecto. Esto lo hizo: ProxyPass / data localhost: 5984 retry = 0
James Wheare

1
También se solucionó el mismo problema para node.js apache passthrough.
Will Shaver
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.