![HAProxy 将所有 HTTP URL 重定向到同一个 HTTP URL](https://linux22.com/image/677444/HAProxy%20%E5%B0%86%E6%89%80%E6%9C%89%20HTTP%20URL%20%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E5%90%8C%E4%B8%80%E4%B8%AA%20HTTP%20URL.png)
我想知道是否有一个万能的解决方案,只需通过相同的 HTTP 协议将所有传入的 HTTP 流量从源 URL 重定向到相同的目标 URL。HTTPS -> HTTPS 也是如此,IE https://foo.bar重定向至https://foo.bar
这也必须包括所有子域名...*.foo.bar
2016 年 2 月 21 日——更新
我正在运行一个 4 到 6 中继代理,并带有 v4 回退功能。主机将通过 IPv4 发送 http 或 https 请求,到达 haproxy 服务器,然后该服务器重定向到相同 URL 的 IPv6 地址,并调用“resolve-prefer ipv6”参数。
我目前已将其用于各个 URL,但我想要一个针对主机 URL 的所有解决方案,任何使用服务器{与主机 URL 相同}。
例如,这是我的当前配置的片段:
frontend f_catchall_http
bind 127.0.0.1:80
bind 2001:19f0:4009:4083:5400:ff:fe1e:2a1f:80
mode http
option httplog
capture request header Host len 50
capture request header User-Agent len 150
default_backend b_deadend_http
use_backend b_catchall_http if { hdr_dom(host) -i example.com }
backend b_catchall_http
mode http
option httplog
option accept-invalid-http-response
use-server example.com if { hdr_dom(host) -i example.com }
server example.com hulu.com:80 check resolvers mydns resolve-prefer ipv6 inter 10s fastinter 2s downinter 2s fall 1800
frontend f_catchall_https
bind 127.0.0.1:443
bind 2001:19f0:4009:4083:5400:ff:fe1e:2a1f:443
mode tcp
option tcplog
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
default_backend b_deadend_https
use_backend b_catchall_https if { req_ssl_sni -i example.com }
backend b_catchall_https
mode tcp
option tcplog
use-server example.com if { req_ssl_sni -i example.com }
server example.com example.com:443 check resolvers mydns resolve-prefer ipv6 inter 10s fastinter 2s downinter 2s fall 1800