การกำหนดค่าพร็อกซีย้อนกลับ HAProxy
ฉันต้องการย้ายบางเว็บไซต์ไปยังเซิร์ฟเวอร์ใหม่ ใช้เวลาสองสามวันในการเปลี่ยนแปลง DNS ทั้งหมดดังนั้นฉันจึงต้องการตั้งค่าพร็อกซีย้อนกลับ HAProxy เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูลทั้งหมดจากตำแหน่งเดิมไปยังตำแหน่งใหม่ ฉันไม่ค่อยมีประสบการณ์กับการกำหนดค่าดังกล่าว เมื่อไปที่โดเมนฉันได้รับข้อความแจ้งว่า:
503 Service Unavailable No server is available to handle this request.
นี่คือการกำหนดค่าที่ฉันใช้ (พร้อมที่อยู่ IP ที่ซ่อนอยู่):
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 }
คำตอบ
ข้อผิดพลาดนี้หมายความว่าแบ็กเอนด์ไม่ได้รับการพิจารณา "ขึ้น"
ขั้นแรกตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์แบ็กเอนด์กำลังทำงานและเข้าถึงได้จากเครื่อง HAProxy เช่นtelnet x.x.x.x 80
และตรวจสอบให้แน่ใจว่าเชื่อมต่อ
หากคุณสามารถเชื่อมต่อได้สำเร็จสิ่งที่สองที่ต้องตรวจสอบคือแบ็กเอนด์ล้มเหลวในการตรวจสอบหรือไม่ ลองลบoption httpchk
และลบออกcheck
จากserver
บรรทัด (เมื่อคุณมีเซิร์ฟเวอร์แบ็กเอนด์เพียงเครื่องเดียวเช็คนั้นไม่ได้มีมูลค่ามหาศาล แต่คุณสามารถเพิ่มกลับได้ในภายหลัง)
อาจเป็นไปได้ว่าคุณHost: localhost
ส่งคืนสิ่งผิดปกติในเช็ค