Haproxy实现负载均衡和动静分离:
前提:后端服务器及部署:
static_servers:
StaSrv1_test 192.168.88.130:80 httpd
StaSrv2_web2 192.168.88.129:80 httpd
dynamic_servers:
DycSrv_www 192.168.88.131:80 httpd
default_servers:
DftSrv1_www 192.168.88.131:8080 nginx
DftSrv2_test 192.168.88.130:8080 nginx
1、haproxy配置
(1)、编辑haproxy配置文件,实现动静分离:
[root@www haproxy]# vi haproxy.cfg
#---------------------------------------------------------------------
# Example configuration for a possible webapplication. See the
# full configuration options online.
#
# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
#to have these messages end up in /var/log/haproxy.log you will
#need to:
#
#1) configure syslog to accept network log events. This is done
# by adding the '-r' option tothe SYSLOGD_OPTIONS in
# /etc/sysconfig/syslog
#
#2) configure local2 events to go to the /var/log/haproxy.log
# file. A line like thefollowing can be added to
# /etc/sysconfig/syslog
#
# local2.* /var/log/haproxy.log
#
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 40000
user haproxy
group haproxy
daemon
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------
# common defaults that all the 'listen' and'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http
# mode tcp
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 30000
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend http-in
bind *:90
bind *:9090
rspadd Rsp-Via:\ www.field.com
mode http
# log global
option httpclose
option logasap
option dontlognull
capture request header Host len20
capture request header Refererlen 60
acl url_static path_beg -i /static /images /javascript/stylesheets
acl url_static path_end -i .jpg .png .css .js
acl url_dynamic path_beg -i /music /video /dynamicpage
acl url_dynamic path_end -i .mp4 .mkv .mp3 .wma .avi
use_backend static_servers if url_static
use_backend dynamic_servers if url_dynamic
default_backend default_servers
listen statistics
bind *:8088
stats enable
stats hide-version
# stats scope .
stats uri /haproxyadmin?stats
stats realm Haproxy\ Statistics
stats auth admin:field
stats auth fieldyang:field
stats admin if TRUE
errorfile 503 /etc/haproxy/errorpages/statserror/503sorry.http
errorfile 403 /etc/haproxy/errorpages/statserror/403forbid.http
#--------------------------------------------------------------------
# static backend for serving up images,stylesheets and such
#---------------------------------------------------------------------
backend static_servers
balance roundrobin
server StaSrv1_test 192.168.88.130:80 check maxconn 6000
server StaSrv2_web2 192.168.88.129:80 check maxconn 6000
errorfile 503 /etc/haproxy/errorpages/503sorry.http
errorfile 403 /etc/haproxy/errorpages/403forbid.http
backend dynamic_servers
balance roundrobin
#基于cookie绑定,SERVERID指cookie名,指定为插入方式,不允许缓存,有可能会使用间接方式访问(可不写)
server DycSrv_www 192.168.88.131:80 maxconn 3000 check
errorfile 503 /etc/haproxy/errorpages/503sorry.http
errorfile 403/etc/haproxy/errorpages/403forbid.http
#backend mysql_servers
# balance leastconn
# server dbsrv1 192.168.88.131:3306 check port 3306 inter 1000 rise 1 fall2 maxconn 300
# server dbsrv2 192.168.88.130:3306 check port 3306 inter 1000 rise 1 fall2 maxconn 300
#---------------------------------------------------------------------
# round robin balancing between the variousbackends
#---------------------------------------------------------------------
backend default_servers
balance roundrobin
cookie SERVER insert nocache indirect
#基于cookie绑定,SERVERID指cookie名,指定为插入方式,不允许缓存,有可能会使用间接方式访问(可不写)
server DftSrv1_www 192.168.88.131:8080 maxconn 5000 check weight1
server DftSrv2_test192.168.88.130:8080 maxconn 5000 check weight 2
# server dynamicsev_www 192.168.88.131:8080 maxconn 1000 check weight1 cookie websev1
# server dynamicsev_test192.168.88.130:8080 maxconn 1000 check weight 2 cookie websev2
errorfile 503 /etc/haproxy/errorpages/503sorry.http
errorfile 403 /etc/haproxy/errorpages/403forbid.http
注意:改变端口,必须重启服务
[root@www haproxy]# service haproxy restart
停止 haproxy:[确定]
正在启动 haproxy:[确定]
[root@www haproxy]# service haproxy status
haproxy (pid 44281) 正在运行...
(2)、编写后端服务器测试页面
[root@test html]# mkdir static
[root@test html]# mkdir javascript
[root@test html]# mkdir stylesheets
[root@test html]# echo "<h1> Welcome to test.field.comstatic page !! </h1>" >static/index.html
[root@test html]# echo "<h1> Welcome to test.field.comjavascript page !! </h1>" >javascript/index.html
[root@test html]# echo "<h1> Welcome to test.field.comstylesheets page !! </h1>" >stylesheets/index.html
[root@test html]# ll
总用量 1080
-rwxr--r-- 1 root root 197222 4月 28 00:42 1.png
-rwxr--r-- 1 root root 153467 4月 28 00:42 2.png
-rwxr--r-- 1 root root 228588 4月 28 00:42 3.png
-rwxr--r-- 1 root root 202941 4月 28 00:42 4.png
-rwxr--r-- 1 root root 219479 4月 28 00:42 5.jpg
drwxr-xr-x. 2 root root 4096 4月 18 21:19 bbs
drwxr-xr-x 2 root root 4096 4月 18 22:22 field
drwxr-xr-x. 2 root root 4096 4月 28 23:35 images
-rw-r--r-- 1 root root 47 4月 26 18:45 index.html
-rw-r--r-- 1 root root 110 4月 26 18:44 index.html.backup
drwxr-xr-x 2 root root 4096 4月 28 00:41 javascript
drwxr-xr-x 2 root root 4096 4月 28 00:40 static
drwxr-xr-x 2 root root 4096 4月 28 00:42 stylesheets
-rw-r--r-- 1 root root 50 4月 27 15:40 test10.html
-rw-r--r-- 1 root root 49 4月 27 15:40 test1.html
-rw-r--r-- 1 root root 49 4月 27 15:40 test2.html
-rw-r--r-- 1 root root 49 4月 27 15:40 test3.html
-rw-r--r-- 1 root root 49 4月 27 15:40 test4.html
-rw-r--r-- 1 root root 49 4月 27 15:40 test5.html
-rw-r--r-- 1 root root 49 4月 27 15:40 test6.html
-rw-r--r-- 1 root root 49 4月 27 15:40 test7.html
-rw-r--r-- 1 root root 49 4月 27 15:40 test8.html
-rw-r--r-- 1 root root 49 4月 27 15:40 test9.html
[root@test html]# cd images
[root@test images]# ll
总用量 1008
-rwxrw-rw-. 1 root root 197222 11月 18 19:131.png
-rwxrw-rw-. 1 root root 153467 11月 18 19:122.png
-rwxrw-rw-. 1 root root 228588 11月 18 19:143.png
-rwxrw-rw-. 1 root root 202941 11月 18 19:144.png
-rwxrw-rw-. 1 root root 219479 11月 18 19:155.jpg
[root@test static]# cat /usr/share/nginx/html/index.html
<h1> welcome to Nginx on test.field.com ! </h1>
[root@web2 html]# mkdir static
[root@web2 html]# mkdir javascript
[root@web2 html]# mkdir stylesheets
[root@web2 html]# echo "<h1> Welcome to web2.field.comstatic page !! </h1>" >static/index.html
[root@web2 html]# echo "<h1> Welcome to web2.field.comjavascript page !! </h1>" >javascript/index.html
[root@web2 html]# echo "<h1> Welcome to web2.field.comstylesheets page !! </h1>" >stylesheets/index.html
[root@www html]# cat /usr/share/nginx/html/index.html
<h1> welcome to Nginx on www.field.com ! </h1>
[root@www ~]# cd /var/www/html/dynamicpage/
[root@www dynamicpage]# ll
总用量 239516
-rwxr--r--. 1 root root 39931918 4月 28 16:45 1.wmv
-rwxr--r--. 1 root root 50196542 4月 28 16:45 2.wmv
-rwxr--r--. 1 root root 1772348 4月 28 16:44 3.gif
-rwxr--r--. 1 root root 46929988 4月 28 16:45 4.avi
-rwxr--r--. 1 root root 10103245 4月 28 16:44 beyond.mp3
-rwxr--r--. 1 root root 9223502 4月 28 16:45 Boy'z、Twins - 死性不改.mp3
-rw-r--r--. 1 root root 1444月 28 16:44 index.html.bak
drwxr-xr-x. 2 root root 4096 4月 28 16:50 music
-rwxr--r--. 1 root root 46929988 4月 28 16:44 test.avi
drwxr-xr-x. 2 root root 4096 4月 28 16:50 video
-rwxr--r--. 1 root root 10840287 4月 28 16:45 戴佩妮 - 怎样.mp3
-rwxr--r--. 1 root root 9169253 4月 28 16:45 朴树 - 白桦林.mp3
-rwxr--r--. 1 root root 9112840 4月 28 16:45 谭咏麟 - 半梦半醒.mp3
-rwxr--r--. 1 root root 10714537 4月 28 16:45 王菲 - 给自己的情书.mp3
3、测试动静分离实现
(1)、测试默认访问:访问http://192.168.88.131:9090/,
刷新页面,页面会在【welcome to Nginxon www.field.com ! 】和【welcome to Nginx ontest.field.com ! 】之间以1:2比例跳转
[root@www ~]# tail -f /var/log/haproxy.log
Apr 28 20:52:11 localhost haproxy[54270]:192.168.88.1:54691 [28/Apr/2018:20:52:11.343] http-indefault_servers/DftSrv2_test 18/0/1/1/+20 200 +367 - - --NI 1/1/1/0/0 0/0{192.168.88.131:9090|} "GET / HTTP/1.1"
Apr 28 20:52:16 localhost haproxy[54270]:192.168.88.1:54694 [28/Apr/2018:20:52:16.944] http-indefault_servers/DftSrv2_test 0/0/1/2/+3 304 +286 - - --NI 1/1/1/0/0 0/0{192.168.88.131:9090|} "GET / HTTP/1.1"
Apr 28 20:52:23 localhost haproxy[54270]:192.168.88.1:54697 [28/Apr/2018:20:52:23.277] http-indefault_servers/DftSrv1_www 0/0/0/2/+2 200 +367 - - --NI 1/1/1/0/0 0/0{192.168.88.131:9090|} "GET / HTTP/1.1"
Apr 28 20:52:29 localhost haproxy[54270]:192.168.88.1:54701 [28/Apr/2018:20:52:29.646] http-indefault_servers/DftSrv2_test 0/0/1/1/+2 200 +367 - - --NI 1/1/1/1/0 0/0{192.168.88.131:9090|} "GET / HTTP/1.1"
Apr 28 20:52:30 localhost haproxy[54270]:192.168.88.1:54702 [28/Apr/2018:20:52:30.047] http-indefault_servers/DftSrv2_test 21/0/1/2/+24 304 +286 - - --NI 1/1/1/0/0 0/0{192.168.88.131:9090|} "GET / HTTP/1.1"
Apr 28 20:52:30 localhost haproxy[54270]:192.168.88.1:54703 [28/Apr/2018:20:52:30.744] http-indefault_servers/DftSrv1_www 18/0/0/1/+19 200 +367 - - --NI 1/1/1/0/0 0/0{192.168.88.131:9090|} "GET / HTTP/1.1"
(2)、测试动态访问:访问http://192.168.88.131:90/music/
可以看到如下页面:
Index of /music
[ICO] Name Lastmodified Size Description
[DIR] Parent Directory -
[SND] beyond.mp3 28-Apr-2018 16:43 9.6M
Apache/2.2.15 (CentOS)Server at 192.168.88.131 Port 90
点击beyond.mp3,可以正常播放
[root@www ~]# tail -f /var/log/haproxy.log
Apr 28 23:20:20 localhost haproxy[393]:192.168.88.1:63733 [28/Apr/2018:23:20:20.817] http-indynamic_servers/DycSrv_www 26/0/0/9/+35 200 +189 - - ---- 1/1/1/0/0 0/0{192.168.88.131:90|} "GET /music/ HTTP/1.1"
Apr 28 23:20:20 localhost haproxy[393]:192.168.88.1:63734 [28/Apr/2018:23:20:20.942] http-indefault_servers/DftSrv2_test 0/0/2/2/+4 404 +239 - - --NI 1/1/1/0/0 0/0{192.168.88.131:90|http://192.168.88.131:90/music/} "GET /icons/blank.gifHTTP/1.1"
Apr 28 23:20:21 localhost haproxy[393]:192.168.88.1:63736 [28/Apr/2018:23:20:21.098] http-indefault_servers/DftSrv1_www 0/0/0/1/+1 404 +239 - - --NI 2/2/2/0/0 0/0{192.168.88.131:90|} "GET /favicon.ico HTTP/1.1"
Apr 28 23:20:21 localhost haproxy[393]:192.168.88.1:63737 [28/Apr/2018:23:20:21.098] http-indefault_servers/DftSrv2_test 0/0/0/3/+3 404 +239 - - --NI 1/1/1/0/0 0/0{192.168.88.131:90|} "GET /favicon.ico HTTP/1.1"
Apr 28 23:20:27 localhost haproxy[393]:192.168.88.1:63750 [28/Apr/2018:23:20:27.532] http-indynamic_servers/DycSrv_www 0/0/0/1/+1 206 +345 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|http://192.168.88.131:90/music/} "GET /music/beyond.mp3HTTP/1.1"
访问http://192.168.88.131:90/dynamicpage/
可以看到如下页面:
Index of /dynamicpage
[ICO] Name Lastmodified Size Description
[DIR] Parent Directory -
[SND] 戴佩妮 - 怎样.mp3 28-Apr-2018 16:45 10M
[SND] 朴树 - 白桦林.mp3 28-Apr-2018 16:45 8.7M
[SND] 王菲 - 给自己的情书.mp3 28-Apr-2018 16:45 10M
[VID] 22.avi 28-Apr-201816:45 45M
[SND] 谭咏麟 - 半梦半醒.mp3 28-Apr-2018 16:45 8.7M
[VID] 1.wmv 28-Apr-201816:45 38M
[VID] 2.wmv 28-Apr-201816:45 48M
[IMG] 3.gif 28-Apr-201816:44 1.7M
[SND] Boy'z、Twins - 死性不改.mp3 28-Apr-2018 16:45 8.8M
[SND] beyond.mp3 28-Apr-2018 16:44 9.6M
[TXT] index.html.bak 28-Apr-2018 16:44 144
[DIR] music/ 28-Apr-201816:50 -
[VID] test.avi 28-Apr-2018 16:44 45M
[DIR] video/ 28-Apr-201816:50 -
Apache/2.2.15 (CentOS)Server at 192.168.88.131 Port 90
点击戴佩妮 - 怎样.mp3 可以播放音乐
点击2.wmv 可以播放视屏
点击文件夹 music/,可以进入并播放音乐
点击文件夹 video/,可以进入并播放视屏 test.avi
[root@www ~]# tail -f /var/log/haproxy.log
Apr 28 21:05:14 localhost haproxy[57091]:192.168.88.1:55167 [28/Apr/2018:21:05:14.599] http-in dynamic_servers/DycSrv_www113/0/0/4/+117 200 +190 - - ---- 1/1/1/1/0 0/0 {192.168.88.131:90|} "GET/dynamicpage/ HTTP/1.1"
Apr 28 21:05:23 localhost haproxy[57091]:192.168.88.1:55171 [28/Apr/2018:21:05:22.554] http-indynamic_servers/DycSrv_www 0/0/0/484/+484 200 +284 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|http://192.168.88.131:90/dynamicpage/} "GET/dynamicpage/%e6%9c%b4%e6%a0%91%20-%20%e7%99%bd%e6%a1%a6%e6%9e%97.mp3HTTP/1.1"
Apr 28 21:05:37 localhost haproxy[57091]:192.168.88.1:55179 [28/Apr/2018:21:05:37.484] http-in dynamic_servers/DycSrv_www0/0/0/3/+3 200 +190 - - ---- 1/1/1/1/0 0/0 {192.168.88.131:90|} "GET/dynamicpage/ HTTP/1.1"
Apr 28 21:05:46 localhost haproxy[57091]:192.168.88.1:55189 [28/Apr/2018:21:05:46.192] http-indynamic_servers/DycSrv_www 0/0/0/218/+218 200 +290 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|http://192.168.88.131:90/dynamicpage/} "GET/dynamicpage/2.wmv HTTP/1.1"
Apr 28 21:06:11 localhost haproxy[57091]:192.168.88.1:55225 [28/Apr/2018:21:06:11.501] http-indynamic_servers/DycSrv_www 0/0/0/4/+4 200 +190 - - ---- 1/1/1/0/0 0/0{192.168.88.131:90|http://192.168.88.131:90/dynamicpage/} "GET/dynamicpage/music/ HTTP/1.1"
Apr 28 21:06:18 localhost haproxy[57091]:192.168.88.1:55250 [28/Apr/2018:21:06:18.420] http-indynamic_servers/DycSrv_www 0/0/0/265/+265 200 +285 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|http://192.168.88.131:90/dynamicpage/music/} "GET/dynamicpage/music/%e6%88%b4%e4%bd%a9%e5%a6%ae%20-%20%e6%80%8e%e6%a0%b7.mp3HTTP/1.1"
Apr 28 21:06:42 localhost haproxy[57091]:192.168.88.1:55281 [28/Apr/2018:21:06:42.593] http-indynamic_servers/DycSrv_www 0/0/0/2/+2 200 +190 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|} "GET /dynamicpage/ HTTP/1.1"
Apr 28 21:06:50 localhost haproxy[57091]:192.168.88.1:55287 [28/Apr/2018:21:06:50.354] http-in dynamic_servers/DycSrv_www0/0/0/1/+1 200 +190 - - ---- 1/1/1/0/0 0/0{192.168.88.131:90|http://192.168.88.131:90/dynamicpage/} "GET/dynamicpage/video/ HTTP/1.1"
Apr 28 21:07:00 localhost haproxy[57091]:192.168.88.1:55295 [28/Apr/2018:21:07:00.192] http-in dynamic_servers/DycSrv_www0/0/0/150/+150 200 +291 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|http://192.168.88.131:90/dynamicpage/video/} "GET/dynamicpage/video/test.avi HTTP/1.1"
Apr 28 21:07:14 localhost haproxy[57091]:192.168.88.1:55383 [28/Apr/2018:21:07:14.124] http-indynamic_servers/DycSrv_www 0/0/0/1/+1 200 +190 - - ---- 1/1/1/0/0 0/0{192.168.88.131:90|} "GET /dynamicpage/ HTTP/1.1"
(3)、测试静态页面访问:访问http://192.168.88.131:90/static/
会以轮询的方式从服务器StaSrv1_test和StaSrv2_web2依次打开如下页面
【Welcome to test.field.comstatic page 】、【Welcome toweb2.field.com static page 】
[root@www ~]# tail -f /var/log/haproxy.log
Apr 28 21:52:13 localhost haproxy[393]:192.168.88.1:57836 [28/Apr/2018:21:52:13.507] http-instatic_servers/StaSrv2_web2 113/0/1/1/+115 200 +286 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|} "GET /static/ HTTP/1.1"
Apr 28 21:52:16 localhost haproxy[393]:192.168.88.1:57839 [28/Apr/2018:21:52:16.335] http-instatic_servers/StaSrv1_test 0/0/0/2/+2 200 +289 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|} "GET /static/ HTTP/1.1"
Apr 28 21:52:16 localhost haproxy[393]:192.168.88.1:57840 [28/Apr/2018:21:52:16.820] http-instatic_servers/StaSrv2_web2 17/0/0/1/+18 200 +286 - - ---- 1/1/1/0/0 0/0{192.168.88.131:90|} "GET /static/ HTTP/1.1"
Apr 28 21:52:17 localhost haproxy[393]:192.168.88.1:57841 [28/Apr/2018:21:52:17.457] http-instatic_servers/StaSrv1_test 17/0/0/2/+19 200 +289 - - ---- 1/1/1/0/0 0/0{192.168.88.131:90|} "GET /static/ HTTP/1.1"
Apr 28 21:52:18 localhost haproxy[393]:192.168.88.1:57843 [28/Apr/2018:21:52:18.977] http-instatic_servers/StaSrv2_web2 19/0/0/1/+20 200 +286 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|} "GET /static/ HTTP/1.1"
访问http://192.168.88.131:90/javascript/
会以轮询的方式从服务器StaSrv1_test和StaSrv2_web2依次打开如下页面
【Welcome to test.field.comjavascript page】、【Welcome toweb2.field.com javascript page】
[root@www ~]# tail -f /var/log/haproxy.log
Apr 28 23:25:32 localhost haproxy[393]:192.168.88.1:64132 [28/Apr/2018:23:25:32.705] http-instatic_servers/StaSrv1_test 165/0/0/2/+167 301 +258 - - ---- 1/1/1/0/0 0/0{192.168.88.131:90|} "GET /javascript HTTP/1.1"
Apr 28 23:25:33 localhost haproxy[393]:192.168.88.1:64134 [28/Apr/2018:23:25:32.893] http-instatic_servers/StaSrv2_web2 12/0/1/131/+144 200 +286 - - ---- 1/1/1/0/0 0/0{192.168.88.131:90|} "GET /javascript/ HTTP/1.1"
Apr 28 23:25:34 localhost haproxy[393]:192.168.88.1:64135 [28/Apr/2018:23:25:34.568] http-instatic_servers/StaSrv1_test 19/0/0/97/+116 200 +289 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|} "GET /javascript/ HTTP/1.1"
Apr 28 23:25:35 localhost haproxy[393]:192.168.88.1:64136 [28/Apr/2018:23:25:35.399] http-instatic_servers/StaSrv2_web2 16/0/1/1/+18 200 +286 - - ---- 1/1/1/0/0 0/0{192.168.88.131:90|} "GET /javascript/ HTTP/1.1"
访问http://192.168.88.131:90/images/
会以轮询的方式从服务器StaSrv1_test和StaSrv2_web2打开如下页面
Index of /images
[ICO] Name Lastmodified Size Description
[DIR] Parent Directory -
[IMG] 1.png 18-Nov-201719:13 193K
[IMG] 2.png 18-Nov-201719:12 150K
[IMG] 3.png 18-Nov-201719:14 223K
[IMG] 4.png 18-Nov-201719:14 198K
[IMG] 5.png 18-Nov-201719:15 214K
Apache/2.2.15 (CentOS)Server at 192.168.88.131 Port 90
点击图片,会以轮询的方式从服务器StaSrv1_test和StaSrv2_web2获取图片
[root@www ~]# tail -f /var/log/haproxy.log
Apr 28 23:27:46 localhost haproxy[393]:192.168.88.1:64241 [28/Apr/2018:23:27:46.720] http-instatic_servers/StaSrv2_web2 193/0/2/1/+196 200 +190 - - ---- 2/2/1/1/0 0/0{192.168.88.131:90|} "GET /images/ HTTP/1.1"
Apr 28 23:27:47 localhost haproxy[393]:192.168.88.1:64242 [28/Apr/2018:23:27:46.720] http-indefault_servers/DftSrv2_test 417/0/0/1/+418 404 +239 - - --NI 1/1/1/0/0 0/0{192.168.88.131:90|http://192.168.88.131:90/images/} "GET /favicon.icoHTTP/1.1"
Apr 28 23:27:49 localhost haproxy[393]:192.168.88.1:64244 [28/Apr/2018:23:27:49.250] http-instatic_servers/StaSrv1_test 20/0/1/1/+22 200 +190 - - ---- 3/3/1/1/0 0/0{192.168.88.131:90|} "GET /images/ HTTP/1.1"
Apr 28 23:27:50 localhost haproxy[393]:192.168.88.1:64245 [28/Apr/2018:23:27:49.250] http-instatic_servers/StaSrv2_web2 1072/0/1/2/+1075 200 +190 - - ---- 3/3/1/0/0 0/0{192.168.88.131:90|} "GET /images/ HTTP/1.1"
Apr 28 23:27:53 localhost haproxy[393]:192.168.88.1:64246 [28/Apr/2018:23:27:49.250] http-instatic_servers/StaSrv1_test 4370/0/0/4/+4374 200 +281 - - ---- 2/2/1/1/0 0/0{192.168.88.131:90|http://192.168.88.131:90/images/} "GET /images/3.pngHTTP/1.1"
Apr 28 23:27:54 localhost haproxy[393]:192.168.88.1:64247 [28/Apr/2018:23:27:50.306] http-instatic_servers/StaSrv2_web2 4660/0/1/2/+4663 200 +281 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|http://192.168.88.131:90/images/} "GET /images/3.pngHTTP/1.1"
Apr 28 23:27:57 localhost haproxy[393]:192.168.88.1:64251 [28/Apr/2018:23:27:57.660] http-instatic_servers/StaSrv1_test 18/0/1/1/+20 200 +281 - - ---- 1/1/1/1/0 0/0 {192.168.88.131:90|http://192.168.88.131:90/images/}"GET /images/3.png HTTP/1.1"
Apr 28 23:27:58 localhost haproxy[393]:192.168.88.1:64252 [28/Apr/2018:23:27:58.125] http-instatic_servers/StaSrv2_web2 22/0/1/1/+24 200 +281 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|http://192.168.88.131:90/images/} "GET /images/3.pngHTTP/1.1"
访问http://192.168.88.131:90/1.png和http://192.168.88.131:90/5.jpg
会以轮询的方式从服务器StaSrv1_test和StaSrv2_web2获取图片
[root@www ~]# tail -f /var/log/haproxy.log
Apr 28 23:30:47 localhost haproxy[393]:192.168.88.1:64354 [28/Apr/2018:23:30:47.500] http-instatic_servers/StaSrv1_test 107/0/1/210/+318 200 +281 - - ---- 2/2/1/1/0 0/0{192.168.88.131:90|} "GET /1.png HTTP/1.1"
Apr 28 23:30:47 localhost haproxy[393]:192.168.88.1:64355 [28/Apr/2018:23:30:47.500] http-indefault_servers/DftSrv1_www 402/0/1/1/+404 404 +239 - - --NI 1/1/1/0/0 0/0{192.168.88.131:90|http://192.168.88.131:90/1.png} "GET /favicon.icoHTTP/1.1"
Apr 28 23:31:00 localhost haproxy[393]:192.168.88.1:64358 [28/Apr/2018:23:30:59.997] http-instatic_servers/StaSrv2_web2 14/0/1/1/+16 200 +281 - - ---- 2/2/1/1/0 0/0{192.168.88.131:90|} "GET /1.png HTTP/1.1"
Apr 28 23:31:11 localhost haproxy[393]:192.168.88.1:64362 [28/Apr/2018:23:31:11.202] http-instatic_servers/StaSrv1_test 18/0/1/2/+21 200 +281 - - ---- 1/1/1/1/0 0/0{192.168.88.131:90|} "GET /1.png HTTP/1.1"
Apr 28 23:38:28 localhost haproxy[393]:192.168.88.1:64479 [28/Apr/2018:23:38:28.451] http-in static_servers/StaSrv2_web212/0/1/1/+14 200 +282 - - ---- 2/2/1/1/0 0/0 {192.168.88.131:90|} "GET/5.jpg HTTP/1.1"
Apr 28 23:38:31 localhost haproxy[393]:192.168.88.1:64480 [28/Apr/2018:23:38:28.451] http-instatic_servers/StaSrv1_test 2473/0/1/339/+2813 200 +282 - - ---- 2/2/1/1/0 0/0{192.168.88.131:90|} "GET /5.jpg HTTP/1.1"
Apr 28 23:38:32 localhost haproxy[393]:192.168.88.1:64482 [28/Apr/2018:23:38:30.907] http-instatic_servers/StaSrv2_web2 1174/0/1/1/+1176 200 +282 - - ---- 2/2/1/1/0 0/0{192.168.88.131:90|} "GET /5.jpg HTTP/1.1"
Apr 28 23:38:32 localhost haproxy[393]:192.168.88.1:64483 [28/Apr/2018:23:38:32.065] http-instatic_servers/StaSrv1_test 601/0/1/2/+604 200 +282 - - ---- 2/2/1/1/0 0/0{192.168.88.131:90|} "GET /5.jpg HTTP/1.1"
(4)、关闭静态服务器,测试报错页面:
[root@test html]# service httpd stop
停止 httpd:[确定]
[root@web2 html]# service httpd stop
停止 httpd:[确定]
访问:http://192.168.88.131:90/images/和http://192.168.88.131:90/static/
可以看到【Sorry! Server isbeing maintained. Please wait.Thanks!】页面
[root@www ~]# tail -f /var/log/haproxy.log
Apr 29 00:19:52 localhost haproxy[393]:192.168.88.1:65169 [29/Apr/2018:00:19:51.987] http-instatic_servers/<NOSRV> 19/-1/-1/-1/+19 503 +55 - - SC-- 0/0/0/0/0 0/0{192.168.88.131:90|} "GET /images/ HTTP/1.1"
Apr 29 00:19:52 localhost haproxy[393]:192.168.88.1:65170 [29/Apr/2018:00:19:52.178] http-instatic_servers/<NOSRV> 42/-1/-1/-1/+42 503 +55 - - SC-- 0/0/0/0/0 0/0{192.168.88.131:90|} "GET /images/ HTTP/1.1"
Apr 29 00:19:56 localhost haproxy[393]:192.168.88.1:65171 [29/Apr/2018:00:19:56.924] http-instatic_servers/<NOSRV> 0/-1/-1/-1/+0 503 +55 - - SC-- 1/1/0/0/0 0/0{192.168.88.131:90|} "GET /static/ HTTP/1.1"
Apr 29 00:20:56 localhost haproxy[393]:192.168.88.1:65188 [29/Apr/2018:00:20:56.939] http-instatic_servers/<NOSRV> 0/-1/-1/-1/+0 503 +55 - - SC-- 1/1/0/0/0 0/0{192.168.88.131:90|} "GET /static/ HTTP/1.1"
(5)、测试“Haproxy Statistics”服务器统计网页
访问http://192.168.88.131:8088/haproxyadmin?stats,输入账户密码:
可以进入haproxy统计页面,多次点击动静态页面,并让http下线,测试“Haproxy Statistics”统计,可以看到进入下图页面:
[root@test html]# service httpd stop
停止 httpd:[确定]
[root@test html]# service httpd start
正在启动 httpd:[确定]
[root@test html]# service httpd stop
停止 httpd:[确定]
[root@test html]# service httpd start
正在启动 httpd:[确定]
[root@test html]# service httpd stop
停止 httpd:[确定]