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
Jawaban:
Saya perhatikan dari konfigurasi yang diberikan bahwa Anda menjalankan infront dari penyeimbang beban AWS ELB
v2
dan saya menduga ituv2e
menunjuk 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
contimeout
batas waktu 4 detik atau batas waktu 300 detikserver
. Yang lebih mungkin adalah 4 detikcontimeout
dan sporadicalness dari kesalahan semakin menegaskan bahwa itu kemungkinan akan menjadi masalah jaringan antara HAProxy dan ELB.Saya akan berusaha meningkatkan
contimeout
nilai serta memantau latensi antara HAProxy dan ELB.sumber