The Taming of the Shrew HAPROXY. Kami bekerja ssl <--> ssl dengan pembuatan sertifikat secara terpisah di setiap server

Sebagai bagian dari tutorial ini, kami akan mengonfigurasi proxy balik agar situs kami berfungsi dalam mode transparan dalam 10 menit. Pergilah.







Saya menetapkan tugas bahwa perutean transparan antara pengunjung dan situs akhir akan bekerja tanpa masalah di server saya di bawah kepemimpinan Proxmox dengan kumpulan situs. Karena internet penuh dengan manual tentang konfigurasi dasar Haproxy, saya mengalami masalah yang 99% dari artikel ini menjelaskan pekerjaan server proxy dalam mode terminasi, dan kemudian informasi berjalan sesuai dengan versi yang tidak dilindungi (dari proxy ke VM terakhir). Ini tidak cocok untuk saya dan saya mulai mencari sedikit demi sedikit informasi di internet. Sayangnya, di segmen kami yang berbahasa Rusia hanya ada sedikit (baca tidak) kami harus menggulung segmen borjuis. Saya sampaikan hasil akhirnya kepada Anda, saya pikir ini pasti akan berhasil untuk siapa saja.







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 #   
      
      





Blokir bertanggung jawab untuk ssl ke 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
      
      





Blokir yang bertanggung jawab atas pengoperasian situs di port 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    
      
      





Apa yang kami dapatkan sebagai hasilnya:



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


Haproxy.



, PROXMOKS-e N - Letsencrypt, , Haproxy .

( ) c ( ) , 80 . .







, .



!







PS Proksi terbalik itu sendiri dinaikkan dan terasa hebat di Ubuntu 18.04 yang hadir dalam template Proxmox. Pada awalnya, saya menjalankannya dalam mode mesin virtual lengkap, tetapi keputusan ini tidak membenarkan dirinya sendiri karena mengonsumsi cukup banyak prosesor dan sumber daya lain dari mesin host. Dengan transfer server proxy ke penampung LXC, konsumsi sumber daya telah turun hingga hampir beberapa persen dari sumber daya mesin host dan kita dapat mengatakan bahwa itu tidak mengkonsumsi apa pun.








All Articles