Haproxy
如果後端關閉,haproxy https 重定向循環
此 haproxy 配置終止 2 個站點(foo 和 bar)的 ssl,並將兩個站點負載平衡到它們自己的後端集群。它還將http請求重定向到https。
這很好用。僅當後端關閉時,它才會進入兩個站點的重定向循環。例如:https://foo.example.com -> https://foo.example.com。
如果我刪除重定向。它通過 http 和 https 為站點提供服務,當後端關閉時,它會按照我的預期提供 503 頁面。
我想將http重定向到https。那麼,為什麼會有重定向循環呢?
global log 127.0.0.1 local0 debug maxconn 1024 chroot /var/haproxy uid 604 gid 604 daemon pidfile /var/run/haproxy.pid defaults log global mode http option httplog option dontlognull option http-server-close option redispatch retries 3 maxconn 2000 errorfile 503 /etc/haproxy/503.http frontend http bind *:80 redirect scheme https code 301 if !{ ssl_fc } frontend https bind *:443 ssl crt /etc/ssl/example.com.pem option forwardfor reqadd X-Forwarded-Proto:\ https http-response set-header Strict-Transport-Security "max-age=31536000;" acl project_foo hdr(host) -i foo.example.com acl project_bar hdr(host) -i bar.example.com use_backend cluster_foo if project_foo use_backend cluster_bar if project_bar backend cluster_foo server foo-1 foo-1.example.com:80 check backend cluster_bar server bar-1 bar-1.example.com:80 check
測試時,haproxy 和 nginx 在同一台伺服器上。foo-1.example.com 在專用 IP 上偵聽埠 80,但 haproxy 在 *:80 上偵聽
讓 haproxy 在專用 IP 上偵聽修復了此問題。所以,上面的配置就好了。我花時間重新測試所有內容,因為我確實簡化了配置以進行合理的可重複設置