HAProxy 将所有 HTTP URL 重定向到同一个 HTTP URL

HAProxy 将所有 HTTP URL 重定向到同一个 HTTP URL

我想知道是否有一个万能的解决方案,只需通过相同的 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

相关内容