haproxy tidak dimulai

20

Menginstal server Ubuntu 10.04 baru dan masuk sebagai root saya menginstal haproxy menggunakan apt-get.

Saya dapat menjalankan haproxy secara langsung sebagai daemon tetapi ketika saya /etc/init.d/haproxy starttidak melakukan apa - apa terjadi .. bahkan tidak ada pesan kesalahan.

netstat -a menunjukkan tidak ada yang menggunakan port http saya mencoba untuk menyeimbangkan dengan haproxy ...

Ide ide?

Edit

  1. Saya perhatikan yang apt-get install haproxymengatakan ini pada akhirnya:

    update-rc.d: peringatan: /etc/init.d/haproxy tidak ada informasi LSB update-rc.d: lihat http://wiki.debian.org/LSBInitScripts

  2. /etc/default/haproxy kata ENABLED=1

Debugging Output untuk 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:~#
Assaf Lavie
sumber
Anda dapat mencoba untuk men-debug skrip mulai dengan: sh -xv /etc/init.d/haproxy start
João Pinto

Jawaban:

39

Edit /etc/default/haproxydan pastikan memiliki garis yang mengatakan ENABLED=1di dalamnya.

Standarnya adalah ENABLED = 0. Ini dilakukan karena haproxy tidak memiliki konfigurasi default yang waras, jadi Anda harus mengkonfigurasinya terlebih dahulu, kemudian mengaktifkannya.

SpamapS
sumber
Saya menetapkan ENABLED = 1, masih tidak ada ..
Assaf Lavie
Assaf, Anda masih perlu mengkonfigurasi haproxy. Jika file konfigurasi tidak benar, itu tidak akan mulai, dan mungkin telah mencetak kesalahan ke log sistem (periksa /var/log/daemon.log dan / var / log / syslog)
SpamapS
2
Mengapa tidak dimulai tanpa pesan lisan? Sangat membingungkan!
Nikolay Fominyh
1
@NikolayFominyh Saya setuju, ini membingungkan! Saya akhirnya menemukan utas ini berulang-ulang karena setiap 8 bulan atau lebih saya harus menyiapkan haproxy baru dan saya selalu lupa tentang persyaratan untuk mengaktifkan layanan di / etc / default / *. Saya berharap sesuatu akan muncul di syslog ketika Anda mencoba memulai layanan yang dinonaktifkan.
Jay Taylor
3

Saya memiliki masalah yang sama, di mana pengaturan ENABLED tidak berpengaruh karena garis "test" selalu gagal. Ditemukan alasannya: Anda harus mengedit /etc/default/haproxybukannya skrip init.

Justin Karneges
sumber
3

Saya tahu ini thread berusia setahun .. tetapi hanya mencoba berbagi apa yang telah saya pelajari ..

gunakan /etc/init.d/haproxy reload atau service haproxy reloaddan itu akan dimuat kembali dengan baik .. setelah semua kita hanya ingin memulai dengan benar;)

cikgureza
sumber
2

Saya memiliki masalah serupa. Saya sudah menetapkan ENABLED = 1, tetapi konfigurasi pembaruan-rc.d default tampaknya menempatkan haproxy di K20 (rc0 | 1 | 6.d) dan di S20 (rc2 | 3 | 4 | 5.d). Yang berarti akan mencoba untuk memulai sebelum jaringan, jadi dalam kasus saya, saya mendapatkannya di boot.log: -

 * Memulai haproxy haproxy [ALERT] 346/160552 (927): Memulai proxy haproxy: tidak dapat mengikat socket
[ALERT] 346/160552 (927): Memulai proxy haproxy: tidak dapat mengikat socket
[ALERT] 346/160552 (927): Memulai proxy haproxy: tidak dapat mengikat socket
[ALERT] 346/160552 (927): Memulai proxy haproxy: tidak dapat mengikat socket
[ALERT] 346/160552 (927): Memulai proxy haproxy: tidak dapat mengikat socket
[ALERT] 346/160552 (927): Memulai proxy haproxy: tidak dapat mengikat socket
[ALERT] 346/160552 (927): Memulai proxy haproxy: tidak dapat mengikat socket
                                                                         [gagal]

mengubah nomor startup menjadi 35 tampaknya memperbaikinya, tapi saya pikir 36 akan lebih aman (nomor lama untuk jaringan adalah 35, jadi sebaiknya mulai setelah itu). Jadi cobalah: -

perbarui-rc.d -f haproxy hapus
perbarui-rc.d haproxy start 35 2 3 4 5. berhenti 20 0 1 6.

Kemudian reboot, dan itu harus mengurutkannya. Pengelola paket benar-benar harus memikirkan hal ini.


sumber
SiBaz, tidak yakin versi Ubuntu apa yang Anda jalankan, tetapi di Lucid, sistem pertanyaannya adalah, jaringan dimulai melalui pemula sebelum transisi rc-sysinit ke runlevel default (2), yang menjalankan / etc / rc2 skrip .d.
SpamapS
Saya menggunakan jernih juga, dan saya dapat meyakinkan Anda bahwa jaringan belum dimulai ketika haproxy dimulai melalui rc2.d /../ init.d / haproxy. Saya juga memperhatikan bahwa, apa yang saya sarankan tidak berfungsi, jadi saya harus menambahkan jaringan ke level rc 2 3 4 5 untuk memulai sebelum haproxy, pembaruan-rc.d jaringan mulai 35 2 3 4 5. Saya menyadari bahwa itu adalah hack, sebagai solusinya adalah dengan menambahkan skrip pemula. Saya telah membuat bug terhadap paket haproxy pada efek yang jelas.
2

Saya mengalami masalah yang sama setelah pertama kali menginstal paket yang dikelola ubuntu dan kemudian (setelah menyadari versi tidak mendukung fitur yang saya butuhkan) Menginstal pap versi haproxy yang lebih baru. Skrip init.d yang saya akhiri dengan menunjuk ke / usr / sbin / haproxy padahal sebenarnya executable saya ada di / usr / local / sbin / haproxy. output debug "sh -xv /etc/init.d/haproxy start" yang disebutkan sebelumnya membuat masalah ini cukup jelas.

grendal_prime
sumber
Saya ingin memperbaiki ini setidaknya dua kali.
Balázs Németh
2

Apakah Anda mencoba memulainya sebagai root, atau dengan sudo? Jika Anda seperti saya, Anda terkadang lupa menambahkan sudo ke bagian depan perintah. Saya mencoba semua perintah Anda tanpa sudo, dan mereka gagal seperti yang Anda jelaskan. Namun, dengan sudo di depan mereka, menggunakan haproxy.cfgfile default dari instal, sekarang berjalan tanpa masalah. Hanya berpikir saya akan menunjukkan bahwa bahkan dengan konfigurasi yang benar, bagi saya itu tidak akan berjalan tanpa sudo.

John Doe
sumber
:) ya, dilakukan sebagai root
Assaf Lavie
1

Saya baru saja mengalami masalah yang sama dengan skrip haproxy init.d pada lucid. Saya tidak bisa memulai haproxy, jadi saya mencarinya dan menemukan Anda harus mengubah variabel ENABLED di skrip /etc/init.d/haproxy.

Namun mengubah variabel ini TIDAK membantu sama sekali dan inilah sebabnya: Beberapa baris lebih rendah di /etc/init.d/haproxy variabel ENABLED diperiksa oleh skrip dengan baris berikut: test "$ ENABLED"! = "0" || keluar 0. Saya perhatikan tes ini SELALU gagal pada sistem saya, tidak peduli berapa nilai ENABLED. Jadi sisa skrip tidak pernah berjalan.

Saya harus mengakui bahwa saya tidak benar-benar tahu mengapa jalur tes ini tidak berfungsi dengan baik. Tetapi karena kami tetap ingin haproxy diaktifkan, mengapa repot-repot memeriksa? ... Mengomentari jalur tes ini membuatnya berfungsi untuk saya.

Semoga ini bisa membantu siapa saja.


sumber
Saya pikir Anda seharusnya mengatur flag yang diaktifkan di / etc / default / haproxy
UpTheCreek
0

Saya juga terus memandangi skrip itu, tidak bisa melihat mengapa ENABLED=1skrip itu tidak berfungsi meskipun ditentukan dalam skrip init.

Akhirnya, setelah melihat ke bawah sedikit, Anda akan melihat bahwa /etc/default/haproxy-filesumber bersumber sebelum tes dilakukan, sehingga menimpa variabel set dalam skrip init itu sendiri ...

ussr
sumber
0

Berlari ke masalah yang sama pada biru dengan vm debian. Ternyata cukup sederhana. Skrip init dari haproxy menggunakan dependensi run-time. Pada pembaruan sistem yang lebih lama-rc.d adalah cara untuk pergi, tetapi pada sistem yang lebih baru insserv digunakan: https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot

Jadi jika Anda telah menggunakan pembaruan-rc.d untuk menambahkan layanan haproxy pada sistem yang lebih baru, Anda harus melakukan:

$ sudo update-rc.d -f haproxy hapus

$ sudo insserv haproxy

Olivier de Jong
sumber