Jak uniknąć ponownego uruchamiania serwera proxy Apache podczas ponownego uruchamiania CouchDB

12

Używam instancji localhost CouchDB za pomocą CouchDBX na moim komputerze Mac, za serwerem Apache 2 za pomocą ProxyPassdyrektywy:

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

Jeśli spróbuję uderzyć w moją instancję kanapy, http://playlick/datagdy nie jest uruchomiona , pojawia się błąd usługi tymczasowo niedostępnej 503 , zgodnie z oczekiwaniami.

I następnie uruchomić serwer kanapie i uderzył tego samego adresu URL, ale nadal pojawia się błąd, aż ponownie uruchomić proxy Apache.

Jeśli z drugiej strony uruchamiam instancję Couch przed kliknięciem tego adresu URL, wszystko działa dobrze bez konieczności dotykania Apache.

Wygląda więc na to, że błąd 503 jest buforowany do czasu ponownego uruchomienia procesu Apache. Jak temu zapobiec?

LUB , jeśli nie jest to możliwe, jak zmusić Apache do ponownego uruchomienia po uruchomieniu instancji Couch w aplikacji GUI CouchDBX?

James Wheare
źródło
Jak do cholery kiedykolwiek dostałeś / dane działały poprawnie. Zawsze próbuję uzyskać komunikat: „Plik nie istnieje: [DocumentRoot] / _ all_dbs, odnośnik: localhost / data / _utils / index.html ”. Wygląda na to, że w pliku jquery.couch.js występują problemy, ponieważ odnoszą się one do „/ _all_dbs”, a usunięcie „/” powoduje, że powyższy błąd pojawia się w odniesieniu do _utils, ale czy to naprawdę jest błąd, czy jest coś jeszcze, co mam konfigurować?
nicerobot

Odpowiedzi:

15

Uważam, że należy przyjrzeć się opcji ponownej próby, którą można przekazać za pomocą dyrektywy ProxyPass .

ponów próbę domyślną: 60 sekund

Upłynął limit czasu ponowienia próby pracownika puli połączeń w sekundach. Jeśli proces roboczy puli połączeń z serwerem zaplecza jest w stanie błędu, Apache nie przekaże żadnych żądań do tego serwera, dopóki nie upłynie limit czasu. Umożliwia to zamknięcie serwera zaplecza w celu konserwacji i przywrócenie go później do trybu online. Wartość 0 oznacza, że ​​zawsze ponawia próbę pracowników w stanie błędu bez limitu czasu.

Zoredache
źródło
4
Doskonały. Zrobiło to: ProxyPass / data localhost: 5984 retry = 0
James Wheare
1
Naprawiono również ten sam problem z przekazywaniem apache node.js.
Will Shaver,