HAProxy merespons dengan NOSRV saat backend naik

11

Saya memiliki situasi aneh di mana permintaan ke HAProxy saya kembali dengan 503. Log HAProxy menunjukkannya mengembalikan kesalahan NOSRV:

Mar 26 19:47:01 localhost haproxy[23910]: 10.0.0.30:34261 
  [26/Mar/2013:19:46:48.579] fe v2/<NOSRV> 12801/-1/-1/-1/12801 503 
  212 - - SC-- 0/0/0/0/0 0/0 "GET /path/v2/ HTTP/1.1"

Selama waktu ini, server backend dikonfirmasi dan menerima lalu lintas dari penyeimbang beban internal. Hal ini terjadi secara spontan tanpa konfigurasi atau perubahan HAProxy lainnya. Restart HAProxy memperbaikinya.

Adakah yang tahu kalau ini masalah yang diketahui? Terima kasih atas bantuan / wawasan Anda.

Terima kasih.

Konfigurasi saya terlihat seperti ini:

global
    maxconn     1000 # Total Max Connections. This is dependent on ulimit
    daemon
    nbproc      1 # Number of processing cores. Dual Dual-core Opteron is 4 cores for example.
    log         127.0.0.1 local1
defaults
        mode        http
        clitimeout  60000
        timeout server 300000
        contimeout  4000
        option      httpclose # Disable Keepalive

backend v2
        server v2Elb internal-xxx.us-west-1.elb.amazonaws.com:80 weight 1 maxconn 512 check
backend v2e
        server v2eElb 10.0.1.28:80 weight 1 maxconn 512 check
frontend fe
        bind :80
        option httpchk
        option forwardfor # This sets X-Forwarded-For
        option httplog
        log global
        acl v2e path_beg /path/v2e
        acl v2 path_beg /path/v2
        redirect location https://my.domain.com/path/v2/ if !v2e !v2
        use_backend v2e if v2e
        use_backend v2 if v2
Raj
sumber
Saya mengalami masalah yang sama. Apakah Anda dapat menyelesaikan ini, atau hanya me-restart layanan begitu sering?
Atifm
apakah Anda bisa menyelesaikan ini? Masalah yang sama, bahkan dengan resolusi host dinamis
Paulius Dragunas
Maaf teman-teman. Saya pindah dari ini dan belum menindaklanjuti untuk mencoba dan menyelesaikannya.
Raj

Jawaban:

2

Saya perhatikan dari konfigurasi yang diberikan bahwa Anda menjalankan infront dari penyeimbang beban AWS ELB v2dan saya menduga itu v2emenunjuk langsung ke server aplikasi (yang seharusnya berada di belakang ELB)?

Jika demikian, ini akan menunjukkan kepada saya bahwa, bersama dengan kesalahan 503, koneksi antara instance HAProxy Anda dan ELB mencapai batas waktu, baik contimeoutbatas waktu 4 detik atau batas waktu 300 detik server. Yang lebih mungkin adalah 4 detik contimeoutdan sporadicalness dari kesalahan semakin menegaskan bahwa itu kemungkinan akan menjadi masalah jaringan antara HAProxy dan ELB.

Saya akan berusaha meningkatkan contimeoutnilai serta memantau latensi antara HAProxy dan ELB.

Jamescun
sumber