このチュートリアルの一環として、サイトが透過モードで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
結果として得られたもの:
- ssl . , ssl .
- ( ) .
- .
- , . ip ( 192.168.1.150:5000) 5000 . admin .
Haproxy.
, PROXMOKS-e N - Letsencrypt, , Haproxy .
( ) c ( ) , 80 . .
, .
!
PSリバースプロキシ自体が発生し、Proxmoxテンプレートに含まれているUbuntu18.04で快適に動作します。最初は、本格的な仮想マシンモードで実行しましたが、ホストマシンのプロセッサやその他のリソースをかなり消費したため、この決定は正当化されませんでした。プロキシサーバーがLXCコンテナーに転送されたことで、リソースの消費量はホストマシンのリソースのほぼ数パーセントに減少し、何も消費していないと言えます。