Haproxy配置之URL重寫,支持Websocket


配置文件位置: /etc/haproxy/haproxy.cfg

關鍵點: Reqrep 正則重寫URL

解決的問題場景: 負載均衡機器出口端口統一為80,代理后台API,Docs,Websocket,Web頁面四個服務,服務端口不一。

最終實現結果:

10.0.0.3/api  -->  10.0.0.1:8080 --> API服務

10.0.0.3  -->  10.0.0.2:8080 --> Web頁面

10.0.0.3/ws --> 10.0.0.1:8443 --> Websocket服務

10.0.0.3/docs  --> 10.0.0.2:9000 --> Docs文檔

 

配置詳情:

 1 Frontend App *:80
 2        acl uri_api             path_beg    /api/
 3        acl uri_web           path_beg    /
 4        acl uri_docs          path_beg    /docs/
 5        acl uri_socket       hdr(Upgrade) -i Websocket
 6        acl uri_socket       hdr_beg(Host) -i ws
 7 
 8     Use_backend api         if uri_api
 9     Use_backend socket   if uri_socket
10     Use_backend web       if uri_web
11     Use_backend docs      if uri_docs
12

13 Backend api
14          balance roundrobin
15          reqrep   ^([^\ ]*\ /)api[/]?(*)  \1\2
16          server   server1 10.0.0.1:8080 check
17 
18 Backend socket
19          balance roundrobin
20          timeout queue 1h
21          timeout server 1h
22          timeout connect 1h
23          server   server1 10.0.0.1:8443 check
24 
25 Backend web
26          balance roundrobin
27          server   server1 10.0.0.2:8080 check
28 
29 Backend docs
30          balance roundrobin
31          server   server1 10.0.0.2:9000 check

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM