您好,登錄后才能下訂單哦!
1.一臺 Haproxy調度服務器,兩臺 Nginx 服務器,一臺windows7作為客戶端;
2.三臺服務器為CentOS 7.3的64位系統;
3.所有主機網卡都設置成僅主機模式,綁定靜態地址;
4.客戶端可以通過訪問調度服務器,訪問到兩臺節點服務器,不需要訪問真實服務器地址
主機 | 角色 | IP地址 |
---|---|---|
centos7-1 | Haproxy服務器 | 192.168.1.10 |
centos7-2 | Nginx服務器1 | 192.168.1.20 |
centos7-3 | Nginx服務器2 | 192.168.1.30 |
win 7 | windows7客戶端 | 192.168.1.40 |
安裝環境包及nginx
[root@nginx1 mnt]# yum -y install \
gcc \
gcc-c++ \
zlib-devel \
pcre pcre-devel \
expat-devel
[root@nginx1 mnt]# useradd -M -s /sbin/nologin nginx #建立管理用戶
[root@nginx1 mnt]# tar zxvf nginx-1.12.0.tar.gz -C /opt/
[root@nginx1 nginx-1.12.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx
[root@nginx1 nginx-1.12.0]# make && make install #編譯安裝
[root@nginx1 nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@nginx1 nginx-1.12.0]# vim /usr/local/nginx/html/test.html #編寫首頁
<h2>ACCP web!!!!!!!!!!!!!!!!!</h2>
編寫啟動腳本
[root@nginx1 nginx-1.12.0]# vim /etc/init.d/nginx #方便service調取
#!/bin/bash
wenjian="/usr/local/nginx/sbin/nginx"
pid="/usr/local/nginx/logs/nginx.pid"
case $1 in
start)
$wenjian ;;
stop)
kill -s QUIT $(cat $pid) ;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $pid) ;;
*)
echo "Please,try again"
exit 1 ;;
esac
exit 0
[root@nginx1 nginx-1.12.0]# chmod +x /etc/init.d/nginx
#開服務
[root@nginx1 nginx-1.12.0]# service nginx start
[root@nginx1 nginx-1.12.0]# systemctl stop firewalld.service
[root@nginx1 nginx-1.12.0]# setenforce 0
#改靜態
[root@nginx1 nginx-1.12.0]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@nginx1 nginx-1.12.0]# systemctl restart nework
安裝環境包及haproxy
#改靜態
[root@nginx1 nginx-1.12.0]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@nginx1 nginx-1.12.0]# systemctl restart nework
##安裝環境包
[root@haproxy mnt]# yum -y install gcc gcc-c++ bzip2-devel pcre pcre-devel
#安裝haproxy
[root@nginx1 ~]# mount.cifs //192.168.10.71/rpm /mnt/
[root@localhost mnt]# tar zxvf haproxy-1.5.19.tar.gz -C /opt/
[root@localhost mnt]# cd /opt/haproxy-1.5.19/
#源碼編譯、安裝
[root@localhost haproxy-1.5.19]# make TARGET=linux26 ##編版本為Linux內核版本(使用uname -a查看)
[root@localhost haproxy-1.5.19]# make install
修改配置文件
root@localhost haproxy-1.5.19]# mkdir /etc/haproxy #創建配置文件站點
[root@localhost haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/ #復制模板
[root@localhost haproxy-1.5.19]# vim /etc/haproxy/haproxy.cfg #修改配置文件
chroot /usr/share/haproxy #(默認家目錄)刪除該行,文件實際并不存在
redispatch #將請求發給故障節點(沒啥用關掉)
-------------------------listen段全部刪除-------------------------------------------------------
##添加
listen webcluster 0.0.0.0:80
option httpchk GET /test.html # 開啟對后端服務器的健康檢測(這里是提交test測試頁面)
#POST 使用加密方式提交參數;GET 使用明文方式直接提交參數,參數顯示在url上
balance roundrobin #負載均衡采用輪詢算法
server inst1 192.168.1.20:80 check inter 2000 fall 3 #定義在線節點1
server inst2 192.168.1.30:80 check inter 2000 fall 3 #定義在線節點2
定義啟動腳本
#定義啟動腳本
[root@localhost haproxy-1.5.19]# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
[root@localhost haproxy-1.5.19]# chmod +x /etc/init.d/haproxy
[root@localhost haproxy-1.5.19]# chkconfig --add /etc/init.d/haproxy ##添加進啟動列表
[root@localhost haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/
#啟服務
[root@localhost haproxy-1.5.19]# service haproxy start
[root@localhost haproxy-1.5.19]# systemctl stop firewalld.service
[root@localhost haproxy-1.5.19]# setenforce 0
實驗結果
使用客戶端訪問Haproxy服務器,調度服務器將對后端web服務器進行調度訪問
配置haproxy配置文件
位置:/etc/rsyslog.d/haproxy.conf
#重啟haproxy 服務
[root@haproxy etc]# service haproxy restart
Restarting haproxy (via systemctl): [ 確定 ]
#創建
[root@haproxy haproxy-1.5.19]# touch /etc/rsyslog.d/haproxy.conf
[root@haproxy haproxy-1.5.19]# vim /etc/rsyslog.d/haproxy.conf
#定義haproxy信息日志
if ($programname == 'haproxy' and $syslogseverity-text == 'info')
then -/var/log/haproxy/haproxy-info.log
&~
#定義haproxy通知日志
if ($programname == 'haproxy' and $syslogseverity-text == 'notice')
then -/var/log/haproxy/haproxy-notice.log
&~
#重啟日志服務
[root@haproxy etc]# systemctl restart rsyslog.service
#切換到日志目錄下查看haproxy日志文件
[root@haproxy etc]# cd /var/log/haproxy/
[root@haproxy haproxy]# ls
haproxy-info.log
#查看日志文件
[root@haproxy haproxy]# cat haproxy-info.log
Nov 30 16: 53: 30 Haproxy haproxy[119165]: 192.168.100.50: 49191 [30/Nov/2019:16:53: 30.100
webcluster. webcluster/inst2 168/0/1/0/169 200 252 - - --- 1/1/0/1/0 0/0 "GET/test.html HTTP/1.1"
Nov 30 16: 53:42 Haproxy haproxy[119165]: 192.168.100.50: 49191[ 30/Nov/2019:16:53:42.290 :
webcluster. webcluster/inst1 159/0/0/0/159 200 253 - - ---- 1/1/0/1/0 0/0 "GET /test.html HTTP/1.1 "
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。