Cara membuat HA Proxy tetap hidup

Di lingkungan saya, saya memiliki keseimbangan beban haproxy untuk 2 server web (Apache), ini adalah konfigurasi HA Proxy saya:

global
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
        tune.ssl.default-dh-param 2048
    daemon
        nbproc      1
    stats socket /var/lib/haproxy/stats
        stats       timeout 1m
        nogetaddrinfo
listen front
    bind :80
    redirect scheme https if { hdr(Host) -i domain.com } !{ ssl_fc }
listen front_ssl
    bind :443 ssl crt /opt/certificate/domain.pem
    mode http
        option dontlognull
    stats      enable
    stats      uri /ha?stats
    stats      realm system
    stats      auth root:*********
    stats      refresh 5s
    option http-keep-alive
    option forwardfor
    option redispatch
    reqadd X-Forwarded-Proto:\ https if { ssl_fc }
         timeout client  15s
        timeout connect 3s
        timeout server  15s
        timeout http-request 15s
        timeout http-keep-alive 15s
        default_backend bk_http
backend bk_http
        mode http
        balance source
        option http-keep-alive
        default-server inter 1s
        retries 3
        timeout connect 3s
        timeout server  15s
        timeout queue 60s
        timeout check 10s
        timeout http-request 15s
        timeout http-keep-alive 15s
        server node1 1.2.3.4:82 check id 1 weight 1 maxconn 2000 maxqueue 2000
        server node2 5.6.7.8:82 check id 1 weight 1 maxconn 2000 maxqueue 2000

"KeepAlive On" di /etc/httpd/conf/httpd.conf Tetapi ketika saya menguji dengan curl, saya melihat bahwa keepalive tidak berfungsi:

curl -Iv http://domain.com 2>&1 | grep -i 'connection #0'
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Closing connection #0
curl -Iv https://domain.com 2>&1 | grep -i 'connection #0'
* Closing connection #0

Seperti yang saya tahu jika keepalive berfungsi, hasilnya seharusnya:

  0   162    0     0    0     0      0      0 --:--:--  0:00:05 --:--:--     0* Connection #0 to host domain.com left intact
* Closing connection #0

Tolong beri tahu saya jika ada yang salah dalam konfigurasi saya?


person user36814    schedule 27.01.2015    source sumber
comment
Tidak seperti situs forum, kami tidak menggunakan Terima Kasih, atau Bantuan apa pun yang kami hargai, atau tanda tangan di Stack Overflow. Lihat Haruskah 'Hai', 'terima kasih,' tagline, dan salam dihapus dari postingan?. BTW, ini Terima kasih sebelumnya, bukan Terima kasih sebelumnya.   -  person John Saunders    schedule 27.01.2015


Jawaban (1)


Anda memiliki konfigurasi yang tepat. Anda cukup memerlukan option http-keep-alive yang merupakan default pada haproxy 1.5. Periksa versi mana yang telah Anda instal.

Lihat http://www.haproxy.org/download/1.5/doc/configuration.txt bagian 4. Proksi

Dalam mode HTTP, pemrosesan yang diterapkan pada permintaan dan respons yang mengalir melalui koneksi bergantung pada kombinasi opsi HTTP frontend dan backend. HAProxy mendukung 5 mode koneksi :

  • KAL : tetap hidup ("opsi http-keep-alive") yang merupakan mode default : semua permintaan dan respons diproses, dan koneksi tetap terbuka tetapi tidak ada aktivitas antara respons dan permintaan baru.

  • TUN: tunnel ("option http-tunnel") : ini adalah mode default untuk versi 1.0 hingga 1.5-dev21 : hanya permintaan dan respons pertama yang diproses, dan yang lainnya diteruskan tanpa analisis sama sekali. Mode ini tidak boleh digunakan karena akan menimbulkan banyak masalah dengan logging dan pemrosesan HTTP.

  • PCL: passive close ("option httpclose") : persis sama dengan mode terowongan, tetapi dengan "Connection: close" ditambahkan di kedua arah untuk mencoba menutup kedua ujungnya setelah pertukaran permintaan/respons pertama.

  • SCL: server close ("option http-server-close") : koneksi yang menghadap server ditutup setelah akhir respons diterima, tetapi koneksi yang menghadap klien tetap terbuka.

  • FCL: tutup paksa ("opsi tutup paksa") : koneksi ditutup secara aktif setelah respons berakhir.

Backend Anda, node1/node2, mungkin menutup koneksi. Mereka mungkin tidak mengaktifkan keepalives.

Jika Anda mencegat lalu lintas, periksa http/1.1 dan tidak ada header "Koneksi: tutup".

person KCD    schedule 26.08.2015