User Tools

Site Tools


решение_haproxy

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
решение_haproxy [2023/12/25 13:00]
val
решение_haproxy [2024/04/08 14:08]
val
Line 2: Line 2:
  
   * [[https://​www.leaderssl.ru/​articles/​354-vypolnyaem-ssl-terminatsiyu-s-pomoschyu-haproxy-dlya-ubuntu-14-04|Выполняем SSL-терминацию с помощью HAProxy для Ubuntu 14.04]]   * [[https://​www.leaderssl.ru/​articles/​354-vypolnyaem-ssl-terminatsiyu-s-pomoschyu-haproxy-dlya-ubuntu-14-04|Выполняем SSL-терминацию с помощью HAProxy для Ubuntu 14.04]]
 +  * [[https://​www.haproxy.com/​documentation/​haproxy-configuration-tutorials/​http-rewrites/​|HAProxy config tutorials HTTP rewrites]]
 +  * [[https://​serverfault.com/​questions/​560978/​configure-multiple-ssl-certificates-in-haproxy|Configure multiple SSL certificates in Haproxy]]
  
 <​code>​ <​code>​
Line 7: Line 9:
  
 gate# cat wild.crt wild.key > /​etc/​ssl/​private/​wild.crtkey gate# cat wild.crt wild.key > /​etc/​ssl/​private/​wild.crtkey
 +gate# ###cat gowebd.crt gowebd.key > /​etc/​ssl/​private/​gowebd.crtkey
 +gate# ###cat keycloak.crt keycloak.key > /​etc/​ssl/​private/​keycloak.crtkey
  
 gate# cat /​etc/​haproxy/​haproxy.cfg gate# cat /​etc/​haproxy/​haproxy.cfg
 </​code><​code>​ </​code><​code>​
 ... ...
-frontend ​kubernetes-ingress +frontend ​ft-gate 
-    mode                 ​http +    mode http
-    bind                 ​*:​80 +
-    bind                 *:443 ssl crt /​etc/​ssl/​private/​gate.crtkey +
-    option ​              ​tcplog +
-    default_backend ​     kubernetes-ingress+
  
-backend kubernetes-ingress+    bind *:80 
 +    redirect scheme https code 301 if !{ ssl_fc }
  
-#    ​http-request add-header X-Real-Ip %[src] ​Custom header with src IP +    bind *:443 ssl crt /​etc/​ssl/​private/​wild.crtkey 
-#    http-request set-header X-Forwarded-Proto https if { ssl_fc } # For Proto+#    ​bind *:443 ssl crt /​etc/​ssl/​private/​gowebd.crtkey crt /​etc/​ssl/​private/​keycloak.crtkey 
 + 
 +    default_backend ​     bk-kube-ingress 
 +#    use_backend bk-kube-ingress if { ssl_fc_sni keycloak.corp13.un } 
 +   ​use_backend bk-node-ingress if { ssl_fc_sni gowebd.corp13.un } 
 + 
 +    option ​              ​tcplog 
 +     
 +backend bk-kube-ingress 
 + 
 +#    http-request set-header X-Forwarded-Proto https if { ssl_fc }
 #    http-request set-header X-Forwarded-Host %[req.hdr(Host)] #    http-request set-header X-Forwarded-Host %[req.hdr(Host)]
 #    http-request set-header X-Forwarded-Port %[dst_port] #    http-request set-header X-Forwarded-Port %[dst_port]
-#    option forwardfor # X-forwarded-for + 
-#    http-request set-uri https://​%[req.hdr(Host)]%[path]?​%[query] if { ssl_fc }+##    http-request add-header X-Real-Ip %[src] # Custom header with src IP 
 +##    option forwardfor # X-forwarded-for 
 +##    http-request set-uri https://​%[req.hdr(Host)]%[path]?​%[query] if { ssl_fc }
  
     mode        http     mode        http
Line 33: Line 46:
     server ​ kube2 kube2:80 check     server ​ kube2 kube2:80 check
     server ​ kube3 kube3:80 check     server ​ kube3 kube3:80 check
 +
 +#backend bk-node-ingress
 +#    mode        http
 +#    balance ​    ​roundrobin
 +#    server ​ node2 node2:80 check
 +#    server ​ node3 node3:80 check
 </​code><​code>​ </​code><​code>​
 # haproxy -f /​etc/​haproxy/​haproxy.cfg -c # haproxy -f /​etc/​haproxy/​haproxy.cfg -c
Line 39: Line 58:
 # service haproxy restart # service haproxy restart
  
 +# tail -f /​var/​log/​haproxy.log
 # journalctl -f | grep proxy # journalctl -f | grep proxy
  
-# curl http://​localhost:83/+haproxy# curl https://​localhost/ ​-H "Host: gowebd.corpX.un"​ -k
 </​code>​ </​code>​
  
решение_haproxy.txt · Last modified: 2024/04/09 11:27 by val