じゃじゃ馬ならしHAPROXY。ssl <-> sslは、各サーバーで個別に証明書を生成します。

このチュートリアルの一環として、サイトが透過モードで10分以内に動作するようにリバースプロキシを構成します。行く。







私は、訪問者と最終サイトの間の透過的なルーティングが、サイトのプールを備えたProxmoxのリーダーシップの下で、サーバー上で問題なく機能するようにタスクを設定しました。なぜなら インターネットにはHaproxyの基本構成に関するマニュアルがたくさんあり、これらの記事の99%が終了モードでのプロキシサーバーの動作を説明しているという問題に遭遇しました。その後、情報は保護されていないバージョン(プロキシから最終的なVM)。これは私には合わず、ネットで少しずつ情報を探し始めました。残念ながら、私たちのロシア語圏のセグメントでは、ブルジョアのセグメントをウールにする必要があったことはほとんどありません(読んでください)。私はあなたの注意に最終結果をもたらします、私はそれが誰にとっても間違いなくうまくいくと思います。







global
log /dev/log    local0
log /dev/log    local1 notice
stats socket /haproxy-admin.sock mode 660 level admin
stats timeout 30s
daemon
defaults
maxconn 2000
mode http        
log global
option dontlognull # bind *:443 ssl crt .
option http-server-close
timeout http-request 10s
timeout connect         5000
timeout client          50000
timeout server         50000
frontend stats
bind *:5000
stats enable
stats uri /stats
stats refresh 10s
stats auth admin:mysupersecretpassword #   
      
      





sslからsslを担当するブロック


frontend env_ssl_frontend
bind *:443
mode tcp
option tcplog
tcp-request inspect-delay 10s
tcp-request content accept if { req_ssl_hello_type 1 }
use_backend bk_app1 if { req.ssl_sni -m end site1.ru }
use_backend bk_app2 if { req.ssl_sni -m end counter.site1.ru }
use_backend bk_app3 if { req.ssl_sni -m end site2.com }  
use_backend bk_app4 if { req.ssl_sni -m end site3.msk.ru }
use_backend bk_app5 if { req.ssl_sni -m end site4.ru }
use_backend bk_app6 if { req.ssl_sni -m end site5.msk.ru }

backend bk_app1
mode tcp
balance leastconn
option tcp-check 
server main 192.168.1.26:443 send-proxy check

backend bk_app2
mode tcp
balance leastconn
option tcp-check
server main 192.168.1.38:443 send-proxy check

backend bk_app3
mode tcp
balance leastconn
option tcp-check
server main 192.168.1.37:443 send-proxy check

backend bk_app4
mode tcp
balance leastconn
option tcp-check
server main 192.168.1.100:443 check

backend bk_app5
mode tcp
balance leastconn
option tcp-check
server main 192.168.1.31:443 send-proxy check

backend bk_app6
balance leastconn
mode tcp
option tcp-check
server main 192.168.1.200:443 check
      
      





ポート80のサイトの運用を担当するブロック


frontend public
        bind *:80

        #  
        acl host_subdomain1 hdr(host) -i site1.ru 
        acl host_subdomain2 hdr(host) -i counter.site1.ru
        acl host_subdomain3 hdr(host) -i site2.com
        acl host_subdomain4 hdr(host) -i site3.msk.ru
        acl host_subdomain5 hdr(host) -i site4.ru
        acl host_subdomain6 hdr(host) -i site5.msk.ru
        ##  acl 
        use_backend subdomain1 if host_subdomain1
        use_backend subdomain2 if host_subdomain2
        use_backend subdomain3 if host_subdomain3
        use_backend subdomain4 if host_subdomain4
        use_backend subdomain5 if host_subdomain5
        use_backend subdomain6 if host_subdomain6

backend subdomain1
        option httpclose
        option forwardfor
        cookie JSESSIONID prefix
        server subdomain-1 192.168.1.26:80 check

backend subdomain2
        option httpclose
        option forwardfor
        cookie JSESSIONID prefix
        server subdomain-2 192.168.1.37:80 check

backend subdomain3
        option httpclose
        option forwardfor
        cookie JSESSIONID prefix
        server subdomain-3 192.168.1.31:80 check

backend subdomain4
        option httpclose
        option forwardfor
        cookie JSESSIONID prefix
        server subdomain-4 192.168.1.100:80 check

backend subdomain5
        option httpclose
        option forwardfor
        cookie JSESSIONID prefix
        server subdomain-5 192.168.1.200:80 check

backend subdomain6
        option httpclose
        option forwardfor
        cookie JSESSIONID prefix
        server subdomain-6 192.168.1.38:80 check    
      
      





結果として得られたもの:



  1. ssl . , ssl .
  2. ( ) .
  3. .
  4. , . ip ( 192.168.1.150:5000) 5000 . admin .


Haproxy.



, PROXMOKS-e N - Letsencrypt, , Haproxy .

( ) c ( ) , 80 . .







, .



!







PSリバースプロキシ自体が発生し、Proxmoxテンプレートに含まれているUbuntu18.04で快適に動作します。最初は、本格的な仮想マシンモードで実行しましたが、ホストマシンのプロセッサやその他のリソースをかなり消費したため、この決定は正当化されませんでした。プロキシサーバーがLXCコンテナーに転送されたことで、リソースの消費量はホストマシンのリソースのほぼ数パーセントに減少し、何も消費していないと言えます。








All Articles