haproxy windows環境使用


haproxy下載:http://pan.baidu.com/s/1miEvQUc

測試環境說明:

ip地址 作用 開放端口 備注
192.168.44.144  安裝sql server,IIS服務網站 1433,8080 供192.168.44.146 訪問
192.168.44.146  安裝haproxy 1433,8088  供外網或宿主機訪問
192.168.44.144  安裝sql server (開放端口 1433) ,IIS服務網站 (開放端口8080)  
                供192.168.44.146 訪問

192.168.44.146  安裝haproxy並開放端口(1433,8088)
           供外網或宿主機訪問


haproxy.cfg:

    
    
    
            
  1. global
  2. maxconn 1500
  3. nbproc 1
  4. daemon
  5. defaults
  6. mode tcp
  7. retries 1
  8. option redispatch
  9. maxconn 2000
  10. timeout connect 5s
  11. timeout client 120s
  12. timeout server 120s
  13. listen sqlserver:1433
  14. bind 0.0.0.0:1433
  15. mode tcp
  16. balance first
  17. server sql_server 192.168.44.144:1433 check inter 1000 rise 3 fall 1 id 1
  18. listen test1 #FrontendBackend的組合體,監控組的名稱,按需自定義名稱
  19. bind 0.0.0.0:8088 #監聽端口
  20. mode http #http7層模式
  21. server test_1 192.168.44.144:8080 check inter 1000 rise 3 fall 1 id 1

啟動腳本命令:

haproxy.exe -f haproxy.cfg -d
-d為前端啟動,-D為后端啟動
或者,直接運行 run.bat


Haproxy配制介紹:

    
    
    
            
  1. global # 全局參數的設置
  2. log 127.0.0.1 local2 # log語法:log <address_1>[max_level_1] # 全局的日志配置,使用log關鍵字,
  3. 指定使用127.0.0.1
  4. 上的syslog服務中的local0日志設備,記錄日志等級為info的日志
  5. chroot /var/lib/haproxy #改變當前工作目錄
  6. pidfile /var/run/haproxy.pid #當前進程id文件
  7. maxconn 4000 #最大連接數
  8. user haproxy #所屬用戶
  9. group haproxy #所屬組
  10. daemon #以守護進程方式運行haproxy
  11. stats socket /var/lib/haproxy/stats
  12. defaults
  13. mode http #默認的模式mode { tcp|http|health },tcp4層,http7層,health只會返回OK
  14. log global #應用全局的日志配置
  15. option httplog # 啟用日志記錄HTTP請求,默認haproxy日志記錄是不記錄HTTP請求日志
  16. option dontlognull # 啟用該項,日志中將不會記錄空連接。所謂空連接就是在上游的負載均衡器
  17. 或者監控系統為了探測該 服務是否存活可用時,需要定期的連接或者獲取某
  18. 一固定的組件或頁面,或者探測掃描端口是否在監聽或開放等動作被稱為空連接;
  19. 官方文檔中標注,如果該服務上游沒有其他的負載均衡器的話,建議不要使用
  20. 該參數,因為互聯網上的惡意掃描或其他動作就不會被記錄下來
  21. option http-server-close #每次請求完畢后主動關閉http通道
  22. option forwardfor except 127.0.0.0/8 #如果服務器上的應用程序想記錄發起請求的客戶端的IP地址,需要在HAProxy
  23. 配置此選項, 這樣 HAProxy會把客戶端的IP信息發送給服務器,在HTTP
  24. 請求中添加"X-Forwarded-For"字段。 啟用 X-Forwarded-For,在requests
  25. 頭部插入客戶端IP發送給后端的server,使后端server獲取到客戶端的真實IP
  26. option redispatch # 當使用了cookie時,haproxy將會將其請求的后端服務器的serverID插入到
  27. cookie中,以保證會話的SESSION持久性;而此時,如果后端的服務器宕掉
  28. 了, 但是客戶端的cookie是不會刷新的,如果設置此參數,將會將客戶的請
  29. 求強制定向到另外一個后端server上,以保證服務的正常。
  30. retries 3 # 定義連接后端服務器的失敗重連次數,連接失敗次數超過此值后將會將對應后端
  31. 服務器標記為不可用
  32. timeout http-request 10s #http請求超時時間
  33. timeout queue 1m #一個請求在隊列里的超時時間
  34. timeout connect 10s #連接超時
  35. timeout client 1m #客戶端超時
  36. timeout server 1m #服務器端超時
  37. timeout http-keep-alive 10s #設置http-keep-alive的超時時間
  38. timeout check 10s #檢測超時
  39. maxconn 3000 #每個進程可用的最大連接數
  40. frontend main *:80 #監聽地址為80
  41. acl url_static path_beg -i /static /images /javascript /stylesheets
  42. acl url_static path_end -i .jpg .gif .png .css .js
  43. use_backend static if url_static
  44. default_backend my_webserver #定義一個名為my_app前端部分。此處將對於的請求轉發給后端
  45. backend static #使用了靜態動態分離(如果url_path匹配 .jpg .gif .png .css .js靜態文件則
  46. 訪問此后端)
  47. balance roundrobin #負載均衡算法(#banlance roundrobin 輪詢,balance source 保存session值,
  48. 支持static-rrleastconnfirsturi等參數)
  49. server static 127.0.0.1:80 check #靜態文件部署在本機(也可以部署在其他機器或者squid緩存服務器)
  50. backend my_webserver #定義一個名為my_webserver后端部分。PS:此處my_webserver只是一個
  51. 自定義名字而已,但是需要與frontend里面配置項default_backend 值相一致
  52. balance roundrobin #負載均衡算法
  53. server web01 172.31.2.33:80 check inter 2000 fall 3 weight 30 #定義的多個后端
  54. server web02 172.31.2.34:80 check inter 2000 fall 3 weight 30 #定義的多個后端
  55. server web03 172.31.2.35:80 check inter 2000 fall 3 weight 30 #定義的多個后端



測試:

IIS服務網站設置:

系統:windows 2008 R2 
主機: 192.168.44.144
開始--》管理工具--》服務器管理
 添加角色:
 下一步, 然后選擇:
 下一步,在彈出的界面中,勾上Web服務器,再勾上管理工具下的所有子項,再下一步
 再下一步,安裝,結束后重啟一下服務器
 點+號,展開該域服務器名稱
右鍵單擊 網站,點擊 添加網站
 
測試:
 
 開放端口: 
192.168.44.144 開放端口 1433,8080
 192.168.44.146  開放端口1433,8088

 通過外網或宿主機訪問 (公外,須要配制)192.168.44.146

 haproxy前端啟動信息:
 haproxy的ip信息
開放端口信息
 
宿主機中訪問
 
宿主機中連接sql server
 
haproxy中有http請求時信息

 






附件列表

     


    免責聲明!

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



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