haproxy acl не работает в режиме https / tcp - PullRequest
5 голосов
/ 16 октября 2010

У меня возникают некоторые проблемы, кажется, я не могу заставить ACL работать в режиме 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 не работает, правила acl http frontend / backend работают просто отлично.

cheers

Ответы [ 2 ]

8 голосов
/ 17 ноября 2010

Потому что ваши https серверы находятся в режиме tcp (как и должно быть для ssl), поэтому правило уровня 7 не будет работать.

1 голос
/ 23 октября 2015

, чтобы 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
...