Web高并发访问:用HAPorxy实现负载均衡
?HAProxy是一款反向代理服務器工具,通過它,可以實現負載均衡。它支持雙機熱備支持虛擬主機,但其配置簡單,擁有非常不錯的服務器健康檢查功能,當其代理的后端服務器出現故障, HAProxy會自動將該服務器摘除,故障恢復后再自動將該服務器加入。新的1.3引入了frontend,backend,frontend根據任意HTTP請求頭內容做規則匹配,然后把請求定向到相關的backend.
??? 利用HAPorxy實現負載均衡
??? 1. 利用HAProxy實現負載均衡
??? 192.168.169.137 (haproxy)———負載均衡———-(192.168.169.117;192.168.169.118)
??? 安裝配置HAproxy
??? cd /usr/local/
??? wget?http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.14.2.tar.gz
??? tar zxvf haproxy-1.3.14.2.tar.gz
??? mv?? haproxy-1.3.14.2?? haproxy
??? cd haproxy
??? make TARGET=linux26
??? 2. 創建配置文件
??? # vi haproxy.cfg
??? global
?????????? maxconn 5120
?????????? chroot /usr/local/haproxy
?????????? uid 99
?????????? gid 99
?????????? daemon
?????? quiet
?????????? nbproc?? 2?? #通過nbproc多設置幾個haproxy并發進程,這樣每個進程的task_queue相對就會短很多,性能自然就能提高不少
?????????? #pidfile /var/run/haproxy-private.pid
??? defaults
?????????? log???? global
?????????? mode http
?????????? option?? httplog
?????????? option?? dontlognull
?????????? log 127.0.0.1 local3
?????????? retries 3
?????????? option redispatch
?????????? maxconn 2000
?????????? contimeout??? 5000
?????????? clitimeout??? 50000
?????????? srvtimeout??? 50000
??? listen webfarm?0.0.0.0:80
?????? mode http
?????? stats uri /haproxy-stats???? #監控haproxy狀態
?????? stats realm Haproxy\ statistics
?????? stats auth netseek:52netseek?? #設置狀態監控的用戶名為netseek密碼為52netseek
?????? balance roundrobin???? #負載均衡算法
?????? cookie SERVERID insert indirect
?????? option httpclose #
?????? option forwardfor?? #apache日志轉發功能
?????? option httpchk HEAD /check.txt HTTP/1.0?? #健康檢測
??? server app_bbs1 192.168.169.117:80 cookie app1inst1 check inter 2000 rise 2 fall 5
??? server app_bbs2 192.168.169.118:80 cookie app1inst2 check inter 2000 rise 2 fall 5
??? syslog.conf里加一行
??? local3.*?????? /var/log/haproxy.log
??? # touch /var/log/haproxy.log
??? # chown haproxy:haproxy /var/log/haproxy.log
??? # chmod u+x /var/log/haproxy.log
??? # tail –f /var/log/harpoxy.log 監控日志
??? # ./haproxy -f haproxy.cfg 啟動服務.
??? 監控狀態圖示http://192.168.169.137/haproxy-stats?,輸入用戶名密碼查看狀態。
??? 后端apache日志處理
??? 配置httpd.conf
??? LogFormat “%{X-Forwarded-For}i %l %u %t \”%r\” %>s %b ” combined
?????????? CustomLog /var/log/httpd/access_log combined
??? 虛擬主機不記錄檢測日志:
??? SetEnvIf Request_URI “^/check\.txt$” dontlog
??? LogLevel warn
??? ErrorLog /var/log/httpd/vhost_error.log
??? CustomLog /var/log/httpd/vhost_access.log combined env=!dontlog
??? 相關介紹
??? #./haproxy –help //haproxy相關命令參數介紹.
??? haproxy?? -f?? <配置文件>?? [-n 最大并發連接總數] [-N 每個偵聽的最大并發數] [-d] [-D] [-q] [-V] [-c] [-p <pid文件>] [-s] [-l] [-dk]
?????? [-ds] [-de] [-dp] [-db] [-m <內存限制M>] [{-sf|-st} pidlist...]
?????? -d???? 前臺,debug模式
?????? -D???? daemon模式啟動
?????? -q???? 安靜模式,不輸出信息
?????? -V???? 詳細模式
?????? -c???? 對配置文件進行語法檢查
?????? -s???? 顯示統計數據
?????? -l???? 顯示詳細統計數據
?????? -dk 不使用kqueue
?????? -ds 不使用speculative epoll
?????? -de 不使用epoll
?????? -dp 不使用poll
?????? -db 禁用后臺模式,程序跑在前臺
?????? -sf <pidlist>
?????? 程序啟動后向pidlist里的進程發送FINISH信號,這個參數放在命令行的最后
?????? -st <pidlist>
?????? 程序啟動后向pidlist里的進程發送TERMINATE信號,這個參數放在命令行的最后
原文鏈接:?http://linux.chinaitlab.com/serv...
總結
以上是生活随笔為你收集整理的Web高并发访问:用HAPorxy实现负载均衡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C 链表(单链表的操作)
- 下一篇: 日志分割工具cronolog