Apache 2.4 proxy_balancer và lbmethod_byrequest


13

Tôi đang cố gắng xây dựng máy chủ Apache của mình bằng các mô-đun tĩnh. Nhưng gặp phải một số vấn đề với mô-đun proxy_balancer. Tôi gặp lỗi:

[ssl:info] [pid 11863] AH01876: mod_ssl/2.4.10 compiled against Server: Apache/2.4.10, Library: OpenSSL/1.0.1i
[proxy:crit] [pid 11868] AH02432: Cannot find LB Method: byrequests
[proxy_balancer:emerg] [pid 11868] (22)Invalid argument: AH01183: Cannot share balancer
[:emerg] [pid 11868] AH00020: Configuration Failed, exiting

Khi tôi nhìn vào các mô-đun được tải bằng cách sử dụng bin/apachectl -Mkhông có mô-đun mod_lbmethod ở đó.

Tôi đã thử tải mô-đun bằng cách thêm các dòng này vào tập lệnh cấu hình --enable-lbmethod-byrequest--with-lbmethod=byrequestnó không hiển thị trong danh sách mô-đun cũng như trong thư mục đi kèm.

Ai đó đã trải qua vấn đề này trước đây và có một giải pháp cho nó?

Câu trả lời:


16

Nếu bạn đang sử dụng Apache 2.4 trở lên, cần phải bật mod_lbmethod_byrequests. Nhưng dưới 2.4 mod_proxy_balancer là đủ. Tôi cũng đã có vấn đề này. Vấn đề là mod_lbmethod_byrequests tách ra khỏi mod_proxy_balancer trong 2.3 .


14

Điều này có thể được giải quyết bằng cách kích hoạt mô-đun mod_lbmethod_byrequests, như vậy:

$ sudo a2enmod lbmethod_byrequests

Điều này không bắt buộc trong Apache 2.2.22, nhưng được Apache 2.4 yêu cầu


2

Vì vậy, tôi đã tìm thấy vấn đề .. Đó là một lỗi đánh máy đơn giản, thiếu dạng số nhiều "s" ..

Đã tải mô-đun bằng cách sử dụng --enable-lbmethod-byrequestsvà nó hoạt động


1

Trong httpd.conf bạn sẽ thấy các dòng sau:

#LoadModule lbmethod_bybusyness_module "${PRODUCT_HOME}/modules/mod_lbmethod_bybusyness.so"
#LoadModule lbmethod_byrequests_module "${PRODUCT_HOME}/modules/mod_lbmethod_byrequests.so"
#LoadModule lbmethod_bytraffic_module "${PRODUCT_HOME}/modules/mod_lbmethod_bytraffic.so"

Hủy nhận xét dòng tùy thuộc vào thuật toán cân bằng tải mà bạn sẽ sử dụng. Trong trường hợp của bạn, không bình luận dòng sau:

#LoadModule lbmethod_byrequests_module "${PRODUCT_HOME}/modules/mod_lbmethod_byrequests.so"

sau khi không chú ý:

LoadModule lbmethod_byrequests_module "${PRODUCT_HOME}/modules/mod_lbmethod_byrequests.so"

Điều này sẽ làm việc tốt.


0

Bạn có chắc chắn đây là một vấn đề bạn nên bận tâm giải quyết? Tại sao bạn đi xuống con đường này?

Apache là một máy chủ web tuyệt vời và có một nơi dành cho mod_proxy trong việc ủy ​​quyền một vài URL trong các môi trường máy chủ đơn giản không có bộ đệm cân bằng tải và bộ đệm cân bằng phía trước. Nếu bạn muốn cân bằng tải, gần như chắc chắn bạn nên đặt nó ở một lớp trước Apache thay vì sử dụng mô-đun apache. Ví dụ: sử dụng Varnish hoặc mực.

Nếu bạn tiếp tục, bạn sẽ cần cung cấp thêm thông tin về chính xác những gì bạn đang làm trong bản dựng và cấu hình của mình và lỗi xuất hiện ở đâu và khi nào.

Tôi đoán bạn có chỉ thị LoadModule thích hợp trong cấu hình apache của bạn không?

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.