Cấu hình proxy ngược HAProxy
Tôi muốn di chuyển một số trang web sang một máy chủ mới. Phải mất vài ngày để thực hiện xong tất cả các thay đổi DNS, vì vậy tôi muốn thiết lập proxy ngược HAProxy để chuyển hướng tất cả lưu lượng truy cập từ vị trí cũ sang vị trí mới. Tôi không có nhiều kinh nghiệm với một cấu hình như vậy. Khi truy cập một miền, tôi gặp lỗi nói:
503 Service Unavailable No server is available to handle this request.
Đây là cấu hình tôi đã sử dụng (với địa chỉ IP ẩn):
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 }
Trả lời
Lỗi này có nghĩa là chương trình phụ trợ không được coi là 'lên'.
Trước tiên, hãy đảm bảo rằng máy chủ phụ trợ đang chạy và có thể truy cập được từ máy HAProxy, ví dụ: telnet x.x.x.x 80và đảm bảo rằng nó kết nối.
Nếu bạn có thể tạo kết nối thành công, điều thứ hai cần kiểm tra là liệu chương trình phụ trợ có bị lỗi hay không. Thử xóa option httpchkvà xóa checkkhỏi serverdòng. (Khi bạn chỉ có một máy chủ phụ trợ, séc không có giá trị lớn, nhưng bạn luôn có thể thêm lại sau)
Có thể là của bạn Host: localhostđang trả lại một cái gì đó bất thường trong séc.