HAProxy 是目前比較流行的一種羣集調度工具,同類羣集調度工具中,同 LVS 對比,LVS 性能最好,可是搭建相對比較複雜,Nginx 的 upstream 模塊支持羣集功能,可是對羣集節點的健康檢查功能不強,性能沒有 HAProxy 好。html
主機 | IP地址 | 主要軟件 |
---|---|---|
HAProxy 服務器 | 192.168.100.200 | haproxy-1.5.19.tar.gz |
Nginx 服務器1 | 192.168.100.201 | nginx-1.12.0.tar.gz |
Nginx 服務器2 | 192.168.100.202 | nginx-1.12.0.tar.gz |
1、 編譯安裝 Nginx 服務器nginx
yum install -y pcre-devel zlib-devel gcc gcc-c++ make useradd -M -s /sbin/nologin nginx tar zxvf nginx-1.12.0.tar.gz -C /opt cd /opt/nginx-1.12.0/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx make && make install
安裝後的默認信息以下。
-默認安裝目錄: /usr/local/nginx
-默認日誌: /usr/local/nginx/logs/
-默認監聽端口:80
-默認 Web 目錄: /usr/local/nginx/htmlc++
echo "<h1>Server 192.168.100.201</h1>" > /usr/local/nginx/html/test.html /usr/local/nginx/sbin/nginx ##啓動nginx systemctl stop firewalld.service setenforce 0
爲了方便,網站直接使用 IP 地址訪問。在客戶端訪問 http://192.168.100.201/test.html 進行測試。web
echo "<h1>Server 192.168.100.202</h1>" > /usr/local/nginx/html/test.html
編譯安裝 HAProxyredis
yum install pcre-devel bzip2-devel gcc gcc-c++ make -y tar zxvf haproxy-1.5.19.tar.gz -C /opt cd haproxy-1.5.19/ make TARGET=linnux26 ##64位系統 make install
HAProxy 服務器配置vim
mkdir /etc/haproxy cp examples/haproxy.cfg /etc/haproxy/ ##複製haproxy.cfg 文件複製到配置文件目錄
vim /etc/haproxy/haproxy.cfg chroot /usr/share/haproxy ##刪除兩條語句及全部 listen 項目 redispatch ##添加 listen webcluster 0.0.0.0:80 option httpchk GET /test.html balance roundrobin server inst1 192.168.100.201:80 check inter 2000 fall 3 server inst2 192.168.100.202:80 check inter 2000 fall 3
複製自啓動腳本,並啓動服務服務器
cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy chmod +x haproxy chkconfig --add /etc/init.d/haproxy ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy service haproxy start
HAProxy 日誌默認輸出到系統 syslog 中,查看很是不方便。爲了更好的管理日誌,能夠將 HAProxy 的 info 訪問日誌和 notice 錯誤日誌記錄到不一樣的日誌文件中。ide
修改配置文件工具
vim /etc/haproxy/haproxy.cfg ##修改成下面的行 global log /dev/log local0 info log /dev/log local0 notice
修改 rsyslog 配置,並重啓 rsylog 服務性能
touch /etc/rsyslog.d/haproxy.conf vim /etc/rsyslog.d/haproxy.conf ##添加下面的腳本 if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log &~ if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log &~
cd /var/log/haproxy/ cat haproxy-info.log