haproxy không bắt đầu


20

Đã cài đặt máy chủ Ubuntu 10.04 mới và đăng nhập bằng root Tôi đã cài đặt haproxy bằng apt-get.

Tôi có thể chạy haproxy trực tiếp như một daemon nhưng khi tôi không làm /etc/init.d/haproxy startgì xảy ra .. thậm chí không có thông báo lỗi.

netstat -a cho thấy không có gì đang sử dụng cổng http Tôi đang cố gắng cân bằng với haproxy ...

Ý tưởng?

Chỉnh sửa

  1. Tôi nhận thấy rằng apt-get install haproxycuối cùng nói điều này:

    update-rc.d: cảnh báo: /etc/init.d/haproxy thiếu thông tin LSB update-rc.d: xem http://wiki.debian.org/LSBInitScripts

  2. /etc/default/haproxy nói ENABLED=1

Đầu ra gỡ lỗi cho sh -xv /etc/init.d/haproxy start

#!/bin/sh
#
# chkconfig: - 85 15
# description: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited \
#              for high availability environments.
# processname: haproxy
# config: /etc/haproxy.cfg
# pidfile: /var/run/haproxy.pid

# Source function library.
if [ -f /etc/init.d/functions ]; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 0
fi
+ [ -f /etc/init.d/functions ]
+ [ -f /etc/rc.d/init.d/functions ]
+ exit 0
root@li267-63:~#

Bạn có thể thử gỡ lỗi tập lệnh bắt đầu bằng: sh -xv /etc/init.d/haproxy start
João Pinto

Câu trả lời:


39

Chỉnh sửa /etc/default/haproxyvà đảm bảo rằng nó có một dòng nói ENABLED=1trong đó.

Mặc định là ENABLED = 0. Điều này được thực hiện bởi vì haproxy không có cấu hình mặc định lành mạnh, vì vậy trước tiên bạn cần định cấu hình nó, sau đó kích hoạt nó.


Tôi đặt ENABLED = 1, vẫn không có gì ..
Assaf Lavie

Assaf, bạn vẫn cần cấu hình haproxy. Nếu tệp cấu hình không chính xác, nó sẽ không khởi động và có thể đã in lỗi vào nhật ký hệ thống (kiểm tra /var/log/daemon.log và / var / log / syslog)
SpamapS

2
Tại sao nó không bắt đầu mà không có bất kỳ thông điệp dài dòng nào? Nó thực sự khó hiểu!
Nikolay Fominyh

1
@NikolayFominyh Tôi đồng ý, điều này thật khó hiểu! Cuối cùng tôi cũng tìm thấy chủ đề này nhiều lần vì cứ sau 8 tháng tôi phải thiết lập một haproxy mới và tôi luôn quên yêu cầu kích hoạt các dịch vụ trong / etc / default / *. Tôi ước điều gì đó sẽ xuất hiện trong syslog khi bạn cố gắng bắt đầu một dịch vụ bị vô hiệu hóa.
Jay Taylor

3

Tôi gặp vấn đề tương tự, khi cài đặt ENABLED không có hiệu lực do dòng "kiểm tra" luôn bị lỗi. Tìm thấy lý do: bạn phải chỉnh sửa /etc/default/haproxythay vì tập lệnh init.


3

Tôi biết chủ đề này một năm tuổi .. nhưng chỉ cố gắng để chia sẻ những gì tôi đã học được ..

sử dụng /etc/init.d/haproxy reload hoặc service haproxy reloadnó sẽ tải lại tốt .. sau đó chúng tôi chỉ muốn nó bắt đầu đúng;)


2

Tôi có một vấn đề tương tự. Tôi đã đặt ENABLED = 1, nhưng cấu hình update-rc.d mặc định dường như đặt haproxy trong K20 (RC0 | ​​1 | 6.d) và trong S20 (rc2 | 3 | 4 | 5.d). Điều đó có nghĩa là nó sẽ cố gắng bắt đầu trước khi kết nối mạng, vì vậy trong trường hợp của tôi, tôi nhận được điều này trong boot.log: -

 * Bắt đầu haproxy haproxy [ALERT] 346/160552 (927): Bắt đầu proxy haproxy: không thể liên kết ổ cắm
[ALERT] 346/160552 (927): Bắt đầu proxy haproxy: không thể liên kết ổ cắm
[ALERT] 346/160552 (927): Bắt đầu proxy haproxy: không thể liên kết ổ cắm
[ALERT] 346/160552 (927): Bắt đầu proxy haproxy: không thể liên kết ổ cắm
[ALERT] 346/160552 (927): Bắt đầu proxy haproxy: không thể liên kết ổ cắm
[ALERT] 346/160552 (927): Bắt đầu proxy haproxy: không thể liên kết ổ cắm
[ALERT] 346/160552 (927): Bắt đầu proxy haproxy: không thể liên kết ổ cắm
                                                                         [Thất bại]

thay đổi số khởi động thành 35 dường như để sửa nó, nhưng tôi nghĩ 36 sẽ an toàn hơn (số cũ cho mạng là 35, vì vậy tốt nhất hãy bắt đầu sau đó). Hãy thử: -

cập nhật-RC.d -f haproxy loại bỏ
update-rc.d haproxy bắt đầu 35 2 3 4 5. dừng 20 0 1 6.

Sau đó khởi động lại, và nó nên sắp xếp nó. Các nhà bảo trì gói thực sự nên nghĩ về điều này.


SiBaz, không chắc bạn đang chạy phiên bản Ubuntu nào, nhưng trong Lucid, câu hỏi đặt ra là hệ thống bắt đầu thông qua việc khởi động trước khi chuyển đổi RC-sysinit sang runlevel mặc định (2), đây là phiên bản chạy / etc / rc2 tập lệnh .d.
SpamapS

Tôi cũng đang sử dụng lucid và tôi có thể đảm bảo rằng mạng của bạn đã không bắt đầu khi haproxy được bắt đầu thông qua RC2.d /../ init.d / haproxy. Tôi cũng nhận thấy rằng, những gì tôi đề nghị không hoạt động, vì vậy tôi phải thêm kết nối mạng vào các cấp độ RC 2 3 4 5 để bắt đầu trước khi haproxy, cập nhật mạng RC.d bắt đầu 35 2 3 4 5. Tôi nhận ra rằng đó là một hack, vì giải pháp sẽ là thêm một kịch bản mới. Tôi đã tạo ra một lỗi đối với gói haproxy trên hiệu ứng đó.

2

Tôi gặp vấn đề tương tự sau lần đầu tiên cài đặt gói duy trì ubfox và sau đó (sau khi nhận ra phiên bản không hỗ trợ tính năng tôi cần) Cài đặt phiên bản haproxy mới hơn của ppa. Tập lệnh init.d mà tôi đã xử lý bằng chỉ / usr / sbin / haproxy trong khi thực tế thì khả năng thực thi của tôi là trong / usr / local / sbin / haproxy. đầu ra gỡ lỗi "sh -xv /etc/init.d/haproxy start" được đề cập trước đó đã làm cho vấn đề này trở nên khá rõ ràng.


Tôi muốn nâng cấp điều này ít nhất hai lần.
Balázs Németh

2

Bạn đã cố gắng để bắt đầu nó như root, hoặc với sudo? Nếu bạn giống như tôi, đôi khi bạn quên thêm sudo vào phía trước các lệnh. Tôi đã thử tất cả các lệnh của bạn mà không có sudo, và chúng đã thất bại như bạn mô tả. Tuy nhiên, với sudo trước mặt họ, sử dụng haproxy.cfgtệp mặc định từ cài đặt, giờ đây nó đang chạy mà không gặp vấn đề gì. Chỉ cần nghĩ rằng tôi chỉ ra rằng ngay cả với các cấu hình chính xác, đối với tôi nó sẽ không đi nếu không có sudo.


:) vâng, được thực hiện với quyền root
Assaf Lavie

1

Tôi vừa gặp vấn đề tương tự với tập lệnh haproxy init.d trên lucid. Tôi chỉ đơn giản là không thể bắt đầu haproxy, vì vậy tôi đã tra cứu nó và thấy bạn phải thay đổi biến ENABLED trong tập lệnh /etc/init.d/haproxy.

Tuy nhiên, việc thay đổi biến này KHÔNG giúp ích gì cả và đây là lý do: Một vài dòng thấp hơn trong /etc/init.d/haproxy biến ENABLED được kiểm tra bởi tập lệnh với dòng sau: kiểm tra "$ ENABLED"! = "0" | | thoát 0. Tôi nhận thấy thử nghiệm này LUÔN LUÔN thất bại trên hệ thống của tôi, không có giá trị nào của ENABLED. Vì vậy, phần còn lại của kịch bản là không bao giờ chạy.

Tôi phải thừa nhận rằng tôi không thực sự biết tại sao dòng thử nghiệm này không hoạt động đúng. Nhưng vì chúng tôi muốn haproxy được kích hoạt bằng mọi cách, tại sao phải kiểm tra? ... Nhận xét dòng thử nghiệm này đã làm cho nó hoạt động với tôi.

Hy vọng điều này sẽ giúp bất cứ ai.


Tôi nghĩ rằng bạn nên đặt cờ được bật trong / etc / default / haproxy
UpTheCalet

0

Tôi cũng cứ nhìn chằm chằm vào scipt, không thể hiểu tại sao nó không hoạt động mặc dù ENABLED=1được định nghĩa trong init-script.

Cuối cùng, sau khi nhìn xuống một chút, bạn sẽ thấy rằng /etc/default/haproxy-filenguồn được lấy ngay trước khi thử nghiệm được thực hiện, do đó ghi đè lên biến set trong chính tập lệnh init ...


0

Chạy vào cùng một vấn đề trên phương vị với một vm debian. Hóa ra khá đơn giản. Tập lệnh init của haproxy sử dụng các phụ thuộc thời gian chạy. Trên bản cập nhật hệ thống cũ hơn-RC.d là cách để sử dụng, nhưng trên hệ thống mới hơn, bảo mật được sử dụng: https://wiki.debian.org/LSBInitScripts/DependencyBasingBoot

Vì vậy, nếu bạn đã sử dụng update-rc.d để thêm dịch vụ haproxy trên các hệ thống mới hơn, bạn nên làm:

$ sudo update-rc.d -f haproxy xóa

$ sudo haproxy

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.