Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    HAProxy, разъясните пару вопросов.

    Scheduled Pinned Locked Moved Russian
    16 Posts 2 Posters 3.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      k0st1k @vladimirlind
      last edited by k0st1k

      @vladimirlind
      Причем я добился того что присходит редирект на портале с http на https, но все стопорится на том что неверный сертификат(на прямую через порт маппинг работает без проблем).

      Automaticaly generated, dont edit manually.

      Generated on: 2019-04-24 16:12

      global
      maxconn 1000
      stats socket /tmp/haproxy.socket level admin
      gid 80
      nbproc 1
      hard-stop-after 15m
      chroot /tmp/haproxy_chroot
      daemon
      server-state-file /tmp/haproxy_server_state

      listen HAProxyLocalStats
      bind 127.0.0.1:2192 name localstats
      mode http
      stats enable
      stats admin if TRUE
      stats show-legends
      stats uri /haproxy/haproxy_stats.php?haproxystats=1
      timeout client 5000
      timeout connect 5000
      timeout server 5000

      frontend http
      bind 82.142.165.226:80 name 82.142.165.226:80
      mode http
      log global
      option http-keep-alive
      maxconn 500
      timeout client 30000
      acl httpRedirectACL var(txn.txnhost) -m str -i er.vokod34.ru
      http-request set-var(txn.txnhost) hdr(host)
      http-request redirect scheme https if httpRedirectACL
      default_backend help.vokod34.ru_ipvANY

      frontend https
      bind 82.142.165.226:443 name 82.142.165.226:443
      mode tcp
      log global
      timeout client 30000
      tcp-request inspect-delay 5s
      acl er req.ssl_sni -i er.vokod34.ru
      tcp-request content accept if { req.ssl_hello_type 1 }
      use_backend er.vokod34.ru_ipv4 if er

      backend help.vokod34.ru_ipvANY
      mode http
      id 100
      log global
      timeout connect 30000
      timeout server 30000
      retries 3
      server help.vokod34.ru 193.125.5.27:80 id 101 weight 50

      backend er.vokod34.ru_ipv4
      mode tcp
      id 10102
      log global
      timeout connect 30000
      timeout server 30000
      retries 3
      source ipv4@ usesrc clientip
      server er.vokod34.ru 193.125.5.9:443 id 10104 ssl weight 50 verify none

      1 Reply Last reply Reply Quote 0
      • V
        vladimirlind
        last edited by

        @k0st1k said in HAProxy, разъясните пару вопросов.:

        acl er req.ssl_sni -i er.vokod34.ru
        tcp-request content accept if { req.ssl_hello_type 1 }

        Если неправильный сертификат - то, наверное, маршрутизация по acl на фронтенде не срабатывает. Сертификат какой, вебгуя пфсенса? Скриншот настроек acl на фронтенде https было бы интересно посмотреть.

        K 2 Replies Last reply Reply Quote 0
        • K
          k0st1k @vladimirlind
          last edited by

          @vladimirlind скрин с утра сделаю, для понимания, использовать сертификат сайта не выйдет? придется свой подсовывать?

          V 1 Reply Last reply Reply Quote 0
          • K
            k0st1k @vladimirlind
            last edited by

            @vladimirlind alc.PNG

            1 Reply Last reply Reply Quote 0
            • V
              vladimirlind @k0st1k
              last edited by

              @k0st1k В текущей конфигурации у вас SSL устанавливается между сервером и клиентом, без терминации на haproxy. Можно использовать режим SSL offloading - для того того, чтобы SSL сессия клиента перехватывалась haproxy, на котором был бы установлен сертификат сайта. В этом случае надо сертификат сайта импортировать на пфсенс и указать его на фронтенде.
              Вы говорите - неверный сертификат при попытке зайти на сайт - а какой сертификат?
              Если на фронтенде https убрать ACL и установить на нем er.vokod34.ru_ipv4 как дефолтный бекенд - будет работать?

              1 Reply Last reply Reply Quote 0
              • V
                vladimirlind
                last edited by

                Если терминировать SSL на haproxy, то стоит попробовать ssl_fc_sni вместо req.ssl_sni в АСL:

                e972ed6f-c8d6-4b6c-96d3-e802615ea539-image.png

                K 1 Reply Last reply Reply Quote 0
                • K
                  k0st1k @vladimirlind
                  last edited by

                  @vladimirlind доковыярл настройки на столько что откат конфига не спасает и отваливаются правила фаервола) на праздниках планирую переставить с нуля и импортировать бэкапом часть основных настроек.
                  Как Подскажите как правильно отстроить.
                  Как я вижу порядок:
                  1.в бэкенд добавляю нужные ресурсы вида ИП*порт.
                  2. в фронтенд добавляется правило перекидывания.
                  необходимо ли дополнительно настраивать NAT?

                  1 Reply Last reply Reply Quote 0
                  • V
                    vladimirlind
                    last edited by

                    HAproxy проксирует запросы, приходящие на айпи:порт, указанные на фронтенде с учетом правил ACL, если таковые настроены, на сервер(ы) в в бекенде (тоже с учетом правил, если таковые настроены). Как правило, на фронтенде указывается айпи внешнего интерфейса, а на бекенде - айпи серваков во внутренней сети. Правил НАТ никаких делать не надо.

                    1 Reply Last reply Reply Quote 0
                    • K
                      k0st1k
                      last edited by k0st1k

                      Вот пример бэкенда для сервиса https, все верно?
                      для каждой пары ип+порт свой бэкенд или в один добавлять как альяс?
                      8f1a42f7-0dd2-4ad3-9474-3680115046fc-изображение.png
                      a237a79e-397b-47a5-b1ce-3a77ab83afda-изображение.png
                      787ac073-0551-4628-9f9a-527cfe3481c1-изображение.png

                      1 Reply Last reply Reply Quote 0
                      • V
                        vladimirlind
                        last edited by

                        сложно сказать - айпи сервера бекенда внешний? Ок, может на то есть причина. Если серверов бекенда несколько - то можно балансировать трафик между ними. Тут много возможностей и вариантов, все зависит от желаемого результата.

                        1 Reply Last reply Reply Quote 0
                        • K
                          k0st1k
                          last edited by

                          Нужна одна реализация
                          domain.ru - 85.125.125.125
                          er.domain.ru - 85.125.125.125 (но во внутренней сети свой адрес, в примере 193.125.5.9)
                          post.domain.ru - 85.125.125.125 (так же свой 193.125.5.4)
                          cloud.domain.ru - 85.125.125.125 (так же свой 193.125.5.2)

                          адресация 193.125.5.* внутренняя( не я её придумал такой) порталы все разные гдето есть ssl гдето нет.

                          1 Reply Last reply Reply Quote 0
                          • V
                            vladimirlind
                            last edited by vladimirlind

                            Я так понимаю, фронтенд один для 85.125.125.125:443 (ну, + еще 80 фронтенд для перенаправления на 443), и с помощью трех правил ACL разруливать на три разных бекенда: если обращение идет к er.domain.ru -> бкенед с 193.125.5.9 и так далее для остальных. Тут еще SSL offloading на фронтенде просится с wildcard сертификатом для *.domain.ru

                            K 1 Reply Last reply Reply Quote 0
                            • K
                              k0st1k @vladimirlind
                              last edited by

                              @vladimirlind не совсем, просто по найду на фронтенде был настроен переброс с http на https, а так нам необходимо чтобы отдельно http и https(переброс сделан на стороне веб сервера если требуется).

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post
                              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.