Konfigurasi proxy balik HAProxy
Saya ingin memindahkan beberapa situs web ke server baru. Diperlukan beberapa hari untuk menyelesaikan semua perubahan DNS, jadi saya ingin menyiapkan proxy balik HAProxy untuk mengarahkan semua lalu lintas dari lokasi lama ke lokasi baru. Saya tidak terlalu berpengalaman dengan konfigurasi seperti itu. Saat mengunjungi domain, saya mendapatkan pesan kesalahan yang mengatakan:
503 Service Unavailable No server is available to handle this request.
Ini adalah konfigurasi yang saya gunakan (dengan alamat IP tersembunyi):
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend localhost
bind *:80
bind *:443 ssl crt /etc/pki/tls/certs/haproxy.pem
redirect scheme https if !{ ssl_fc }
mode http
default_backend node
backend node
mode http
option forwardfor
option httpchk HEAD / HTTP/1.1\r\nHost:localhost
server dcnode1 x.x.x.x:80 check
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
Jawaban
Kesalahan ini berarti bahwa backend tidak dianggap 'naik'.
Pertama-tama, pastikan server backend berjalan dan dapat diakses dari mesin HAProxy, misalnya, telnet x.x.x.x 80
dan pastikan terhubung.
Jika Anda berhasil membuat koneksi, hal kedua yang harus diperiksa adalah apakah backend gagal dalam pemeriksaan. Coba hapus option httpchk
, dan hapus check
dari server
garis. (Jika Anda hanya memiliki satu server backend, pemeriksaan tidak bernilai besar, tetapi Anda selalu dapat menambahkannya kembali nanti)
Mungkin Anda Host: localhost
mengembalikan sesuatu yang tidak biasa dalam cek.