測試后發現,haproxy2.0和之前的版本部署有些許差異,配置文件的寫法也是不同的
測試環境:Centos7.3
IP:172.16.1.227
172.16.1.228 部署httpd,頁面內容為this is 228
172.16.1.230 部署httpd,頁面內容為默認內容
部署步驟:
1.1需要先安裝lua5.3版本,否則后面后報錯
curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz yum install readline-devel gcc -y tar zxvf lua-5.3.5.tar.gz cd lua-5.3.5 make linux make INSTALL_TOP=/usr/local/lua install yum install systemd-devel wget openssl openssl-devel -y
1.2部署haproxy。可以看到安裝PREFIX指定的安裝目錄為/usr/local/haproxy 。haproxy還可以到這個地址下載https://src.fedoraproject.org/repo/pkgs/haproxy/
cd
wget https://www.haproxy.org/download/2.0/src/haproxy-2.0.1.tar.gz
tar zxvf haproxy-2.0.1.tar.gz cd haproxy-2.0.1 make -j $(nproc) TARGET=linux-glibc USE_OPENSSL=1 USE_ZLIB=1 USE_LUA=1 LUA_LIB=/usr/local/lua/lib/ LUA_INC=/usr/local/lua/include/ USE_PCRE=1 USE_SYSTEMD=1 make install PREFIX=/usr/local/haproxy
cd
1.3創建運行用戶(應該也可忽略,只是使用該用戶運行,加強安全而已。我一般是直接使用root用戶運行)
useradd haproxy -s /sbin/nologin
1.4創建配置文件haproxy.cfg。在安裝目錄/usr/local/hadproxy下新建haproxy.cfg,內容如下 配置文件參考鏈接:https://blog.csdn.net/genglei1022/article/details/83374188
[root@node2 haproxy]# cat haproxy.cfg
global #全局設置
daemon #以后台進程運行
maxconn 256 #每個進程的最大連接數
nbproc 1 #進程數,該值可以設置小於或等於cpu核心數
balance roundrobin #默認的負載均衡的方式,輪詢方式 #balance source #默認的負載均衡的方式,類似nginx的ip_hash #balance leastconn #默認的負載均衡的方式,最小連接
defaults #默認設置
mode http #設置http(七層模式),也可設置為tcp(四層模式),另外還有一個Health健康監測模式。對mysql進行負載均衡的話,這里記得修改為tcp
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
listen admin_stats #配置haproxy管理頁面
bind *:9999 #訪問端口為9999
mode http
option httplog
stats refresh 30s #自動刷新時間
stats uri /stats #項目名為status,ip+端口+項目名即可訪問
stats auth admin:admin #配置管理用戶賬號密碼
stats admin if TRUE
stats hide-version
frontend http-in #配置前端訪問端口
bind *:1080 #通過該端口進行負載均衡
default_backend servers #指定后端服務器
backend servers
server server1 172.16.1.230:80 check inter 2000 rise 3 fall 3 weight 1 maxconn 32
#建議加上check,否則后台服務器A宕機了,負載均衡還會把請求發送到該宕機服務器上,inter 2000指check檢測時間為2000毫秒,rise 3檢測3次均正常則表示后天服務器正常,fall 3檢測3次失敗,則會把該后天服務器標志宕機,不再玩該后台服務器發送請求,weight 1指權重,取消weight改為backup,則是所有后台服務器宕機后才會啟用該backup后台服務器
server server2 172.16.1.227:80 check inter 2000 rise 3 fall 3 weight 1 maxconn 32
1.5使用指定配置文件運行haproxy。建議都haproxy和hadproxy.cfg都使用絕對路徑
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
1.6測試效果
其中228的80端口上我啟用了httpd,頁面內容為this is 228.另外一台230上的80端口也是httpd,頁面為默認內容。使用谷歌瀏覽器訪問172.16.1.227,每次刷新的內容都和上一次不一樣