haproxy acl无法在https / tcp模式下工作

时间:2010-10-16 17:08:38

标签: haproxy

我遇到了一些问题,似乎我无法在tcp模式下工作,所有内容都在http模式下工作。
这是我的配置。

frontend  http *:80
    acl http_test_acl       path_beg    -i /test
    use_backend http_test   if http_test_acl
    default_backend         http_default

backend http_test
    balance   roundrobin
    server    httptest 10.10.10.10:80 check

backend http_default
    balance   roundrobin
    server    httpdefault 10.10.10.10:80 check

############# HTTPS #################
frontend  https *:443
    mode tcp
    acl https_test_acl         path_beg -i /test
    use_backend https_test     if https_test_acl
    default_backend            https_default

backend https_test
    mode tcp
    balance   roundrobin
    server    httpstest 10.10.10.10:443 check

backend https_default
    mode tcp
    balance   roundrobin
    server    httpsdefault 10.10.10.10:443 check

不要注意ip 10.10.10.10,因为我隐藏了我的原始版本。你可以告诉我为什么https无法正常工作,http frontend / backend acl规则工作得很好。

欢呼声

2 个答案:

答案 0 :(得分:8)

因为您的https服务器处于tcp模式(因为它们应该用于ssl),因此第7层规则不起作用。

答案 1 :(得分:1)

让acl工作,禁用tcp模式,然后在后端的服务器上设置ssl(因此ssl关键字)

frontend  https *:443
    acl https_test_acl      path_beg    -i /test
    use_backend     https_test  if https_test_acl
    default_backend             https_default

backend https_test
    balance   roundrobin
    server    httpstest 10.10.10.10:443 ssl check

backend https_default
    balance     roundrobin
    server  httpsdefault 10.10.10.10:443 ssl check

或者不必在后端服务器上设置ssl;在后端服务器中使用私有IPS,并确保后端服务器上的端口不对世界开放

    backend https_test
    balance   roundrobin
    server    httpstest some_private_ip:8000 check
相关问题