HAProxy:阻止子域名重定向到 https

HAProxy:阻止子域名重定向到 https

编辑我的 haproxy 配置后。我的所有子域现在都重定向到 https。我只希望我的 domain.com 重定向到 https,而不是我的子域。我该如何停止这种情况?以下是我的重定向脚本。

更新

global

  log /dev/log    local0
  log /dev/log    local1 notice
  chroot /var/lib/haproxy

  user haproxy
  group haproxy
  daemon

  ca-base /ssl
  crt-base /ssl

  ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL

defaults

  log global
  mode http

  option  httplog
  option  redispatch
  option  forwardfor
  option  dontlognull
  option  http-server-close

  timeout connect 5s
  timeout client 30s
  timeout server 30s
  timeout tunnel 1h

frontend public-front

  bind *:80
  redirect scheme https if !{ ssl_fc }

  bind *:443 ssl crt domain.com.pem 
  use_backend some-back if { path_beg /somepath/ }

  default_backend default-back

backend some-back

  reqadd X-Forwarded-Proto:\ https
  balance leastconn
  option httpchk GET /somepath
  timeout check 500ms

  server some-back someback.domain.com:443 check-ssl ssl ca-file domain.com.pem inter 500ms

backend default-back

  reqadd X-Forwarded-Proto:\ https
  balance leastconn
  option httpchk GET
  timeout check 500ms

  server default-back 127.0.0.1:8080 check-ssl ssl ca-file domain.com.pem inter 500ms

frontend stats-front

  bind :8888 ssl crt domain.com.pem
  default_backend stats-back

backend stats-back

  stats enable
  stats hide-version
  stats realm Haproxy\ Statistics
  stats uri /statistics
  stats auth admin:password

我用https://domain.com作为我的主页,裸露或没有www,这指向
我使用的haproxyhttp://sub.domain.com用于其他内容,但访问主页后会重定向到 https。

HA-Proxy 版本 1.5.4 2014/09/02

答案1

从您的“公共前端”前端删除redirect scheme https if !{ ssl_fc }并替换为:

 redirect scheme https if { hdr(Host) -i domain.com } !{ ssl_fc}
 redirect scheme https if { hdr(Host) -i www.domain.com } !{ ssl_fc}

应该可以满足您的要求。这些 URL 将重定向:

www.domain.com/

domain.com/

www.domain.com/someotherdirectory/

domain.com/thisisapage.html

这些不会:

www2.域名.com

子域名.com

www.sub.domain.com

相关内容