Haproxy

HAProxy 反向代理配置

  • August 18, 2020

我想將一些網站遷移到新伺服器。完成所有 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,然後checkserver行中刪除。(當您只有一個後端伺服器時,支票價值不大,但您可以稍後再添加)

可能是您Host: localhost在支票中退回了一些不尋常的東西。

引用自:https://serverfault.com/questions/1030612