日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Router vs Route詳解 route和router的區(qū)別是什么( 四 )


(6)HAPorxy 進(jìn)程會(huì)重啟,從而應(yīng)用修改了的配置文件 。
理解(5)中的腳本需要的一些背景知識(shí):

  • SNI:TLS Server Name Indication (SNI) ,這是 TLS 網(wǎng)絡(luò)協(xié)議的一種擴(kuò)展,會(huì)在 TLS 握手前由客戶端(client)告知服務(wù)器端(server)它將會(huì)連接的域名(hostname),使得服務(wù)器端可以根據(jù)該hostname 向客戶端段返回指定的證書,從而使得服務(wù)器端能夠支持多個(gè)hostname 需要的多個(gè)證書 。詳情請(qǐng)參閱 https://en.wikipedia.org/wiki/Server_Name_Indication 。
  • OpenShift passthrough route:這種 route 的 SSL 連接不會(huì)在 router 上被 TLS 終止(termination),而是router 會(huì)將 TLS 鏈接透?jìng)鞯胶蠖?。下文有解釋 。
  • HAProxy 對(duì) SNI 的支持:HAProxy 會(huì)根據(jù) SNI 的信息中的 hostname 去選擇特定的 backend 。詳情請(qǐng)參閱 https://www.haproxy.com/blog/enhanced-ssl-load-balancing-with-server-name-indication-sni-tls-extension/ 。
  • HAProxy ACL:詳情請(qǐng)參閱 https://www.haproxy.com/documentation/aloha/10-0/traffic-management/lb-layer7/acls/

從上面的藍(lán)色注釋中,我們能看到 HAProxy 進(jìn)程通過 https 請(qǐng)求中通過 SNI 傳入的域名 sitjenkins.com.cn ,在 os_tcp_be.map 文件中獲取到了 backend 名稱
be_tcp:sit:sitjenkins.com.cn,這樣就和(2)步驟中的 backend 對(duì)應(yīng)上了 。
OpenShift 的 router 使用的 HAProxy 采用基于域名的負(fù)載均衡路由方式,示例如下,具體說明請(qǐng)參加官方文檔 。
Router vs Route詳解 route和router的區(qū)別是什么


2.5 OpenShift edge 和 re-encrypt 類型的 route 與 HAProxy
HAProxy 前端:前端依然是在 443 端口監(jiān)聽外部 HTTPS 請(qǐng)求
frontend public_ssl bind :443..... # if the route is SNI and NOT passthrough enter the termination flow use_backend be_sni if sni
但是,當(dāng) TLS 終止類型不是 passthrough (edge 或者 re-encrypt)時(shí),會(huì)使用backend be_sni 。
backend be_sni server fe_sni 127.0.0.1:10444 weight 1 send-prox
而這個(gè)后端是由本機(jī)的 127.0.0.1:10444 提供服務(wù),因此又轉(zhuǎn)到了前端 fe_sni:
frontend fe_sni # terminate ssl on edge bind 127.0.0.1:10444 ssl no-sslv3 crt /var/lib/haproxy/router/certs/default.pem crt-list /var/lib/haproxy/conf/cert_config.map accept-proxy mode http 。。。。。。# map to backend # Search from most specific to general path (host case). # Note: If no match, haproxy uses the default_backend, no other # use_backend directives below this will be processed. use_backend %[base,map_reg(/var/lib/haproxy/conf/os_edge_reencrypt_be.map)] default_backend openshift_default
map 映射文件:
sh-4.2$ cat /var/lib/haproxy/conf/os_edge_reencrypt_be.map^edgejenkins\.com\.cn(:[0-9]+)?(/.*)?$ be_edge_http:sit:jenkins-edge
Edge 類型 route 的 HAProxy 后端:
backend be_edge_http:sit:jenkins-edge mode http option redispatch option forwardfor balance leastconn timeout check 5000ms ..... server pod:jenkins-1-bqhfj:jenkins:10.128.2.15:8080 10.128.2.15:8080 cookie 71c6bd03732fa7da2f1b497b1e4c7993 weight 256 check inter 5000ms server pod:jenkins-1-h2fff:jenkins:10.131.0.10:8080 10.131.0.10:8080 cookie fa8d7fb72a46958a7add1406e6d26cc8 weight 256 check inter 5000ms
Re-encrypt 類型 route 的 HAProxy 后端:
# Plain http backend or backend with TLS terminated at the edge or a# secure backend with re-encryption.backend be_secure:sit:reencryptjenkins.com.cn mode http 。。。。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-Proto http if !{ ssl_fc } http-request set-header X-Forwarded-Proto https if { ssl_fc } http-request set-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 } server pod:jenkins-1-bqhfj:jenkins:10.128.2.15:8080 10.128.2.15:8080 cookie ... weight 256 ssl verifyhost jenkins.sit.svc verify required ca-file /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt check inter 5000ms #與后端的鏈路采用 ssl 加密,并且要檢查hostname server pod:jenkins-1-h2fff:jenkins:10.131.0.10:8080 10.131.0.10:8080 cookie ... weight 256 ssl verifyhost jenkins.sit.svc verify required ca-file /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt check inter 5000ms

推薦閱讀