Cách tránh khởi động lại Apache proxy khi bạn khởi động lại CouchDB


12

Tôi đang chạy một cá thể CouchDB localhost bằng CouchDBX trên máy Mac của mình, được ủy quyền đằng sau Apache 2 bằng cách sử dụng lệnh 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>

Nếu tôi cố gắng nhấn phiên bản Couch của mình http://playlick/datatrong khi nó không chạy, tôi sẽ gặp một lỗi 503 Dịch vụ tạm thời không khả dụng , như mong đợi.

Sau đó, tôi khởi động máy chủ Couch và nhấn cùng một URL, nhưng tôi vẫn gặp lỗi cho đến khi tôi khởi động lại proxy Apache.

Mặt khác, nếu tôi khởi động cá thể Couch trước khi nhấn URL đó, mọi thứ sẽ hoạt động tốt mà không cần phải chạm vào Apache.

Vì vậy, có vẻ như lỗi 503 được lưu trữ cho đến khi quá trình Apache được khởi động lại. Làm thế nào để tôi ngăn chặn điều này xảy ra?

HOẶC , nếu điều đó là không thể, làm cách nào để buộc Apache khởi động lại khi tôi khởi động phiên bản Couch trong ứng dụng GUI CouchDBX?


Làm thế nào trên thế giới bạn đã bao giờ có được / dữ liệu để hoạt động đúng. Tôi thử và luôn nhận được "Tệp không tồn tại: [DocumentRoot] / _ all_dbs, tham chiếu: localhost / data / _utils / index.html ". Có vẻ như có vấn đề trong jquery.couch.js vì chúng đề cập đến "/ _all_dbs" và việc xóa "/" làm cho lỗi trên xuất hiện liên quan đến _utils nhưng đây thực sự là một lỗi hay tôi có lỗi gì khác không để cấu hình?
nicerobot

Câu trả lời:


15

Tôi tin rằng những gì bạn cần xem xét là tùy chọn thử lại mà bạn có thể vượt qua với chỉ thị ProxyPass .

thử lại mặc định: 60 giây

Kết nối nhân viên hồ bơi thử lại thời gian chờ trong vài giây. Nếu nhân viên nhóm kết nối đến máy chủ phụ trợ ở trạng thái lỗi, Apache sẽ không chuyển tiếp bất kỳ yêu cầu nào đến máy chủ đó cho đến khi hết thời gian. Điều này cho phép tắt máy chủ phụ trợ để bảo trì và đưa nó trở lại trực tuyến sau. Giá trị 0 có nghĩa là luôn thử lại công nhân trong trạng thái lỗi không có thời gian chờ.


4
Hoàn hảo. Điều này đã làm điều đó: ProxyPass / data localhost: 5984 retry = 0
James Wheare

1
Cũng đã khắc phục vấn đề tương tự đối với thông qua apache của node.js.
Sẽ cạo râu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.