小木木 发表于 2019-1-1 09:45:12

Haproxy其他功能及配置

  下面了解一下haproxy的其他功能设置,多是一些生产环境中常用的功能设置,所以列举如下。
  一、haproxy健康检查
  1、基于HEAD的检查方法

  写法:
  option httpchk HEAD /a.html HTTP/1.0
  相当于curl http://*.*.*.*/a.html, 如果a.html不存在,即使http服务正常也会提示服务器不可用。
http://s2.运维网.com/wyfs02/M02/88/53/wKiom1fuogPiAQNyAAK1Dp4KTtQ418.png-wh_500x0-wm_3-wmp_4-s_2384485089.png
  两个节点的状态原本都是正常的。
  下面修改一下配置文件,内容添加httpchk一项:
listenwebsites
      bind192.168.100.121:80
      optionhttpchk HEAD /check.html HTTP/1.0
      timeoutserver15s
      timeoutconnect 30s
      servermylinux3192.168.100.181:80 check port 80 inter 2000 fall 3
      servermylinux4192.168.100.182:80 check port 80 inter 2000 fall 3  再次查看服务器的状态:
http://s1.运维网.com/wyfs02/M02/88/50/wKioL1fuogeTUTGiAAKuIIlzPPk615.png-wh_500x0-wm_3-wmp_4-s_667147031.png
  发现两个Server都是宕机的状态。
http://s2.运维网.com/wyfs02/M01/88/53/wKiom1fuogrCnPmmAAFDguMoL7w956.png-wh_500x0-wm_3-wmp_4-s_2507287244.png
http://s2.运维网.com/wyfs02/M02/88/50/wKioL1fuogyCx9JtAAFAyCCFUjE731.png-wh_500x0-wm_3-wmp_4-s_2737536311.png
  然而两个服务器的http服务都是正常的,只是没有check.html这个页面。
# echo check >>/var/www/html/check.html  在mylinux3上生成check.html这个页面,再次查看监控界面:
http://s1.运维网.com/wyfs02/M00/88/53/wKiom1fuoviB9ydFAAKS9v4ukc8327.png-wh_500x0-wm_3-wmp_4-s_436026961.png
  发现mylinux3的状态已经恢复,说明httpchk作用正常。
  2、基于GET的检查方法
  写法:

  option httpchk GET /a.txt
  相当于wget http://*.*.*.*/a.txt,如果a.txt不存在,则即使httpd服务正常也会提示服务不可用。
  配置示例:

listenwebsites
      bind192.168.100.121:80
      option   httpchk GET /info.txt
      #optionhttpchk HEAD /check.html HTTP/1.0
      timeoutserver15s
      timeoutconnect 30s
      servermylinux3192.168.100.181:80 check port 80 inter 2000 fall 3
      servermylinux4192.168.100.182:80 check port 80 inter 2000 fall 3http://s5.运维网.com/wyfs02/M00/88/50/wKioL1fupR2AuYP1AAKD7MSM92U396.png-wh_500x0-wm_3-wmp_4-s_3585527357.png
  mylinux3和mylinux4上的httpd服务正常,浏览器可以正常访问,但是监控界面两个服务器都是宕机状态。
# touch /var/www/html/info.txt  在mylinux4上创建info.txt文件,再次刷新监控界面:
http://s2.运维网.com/wyfs02/M02/88/53/wKiom1fupcnwx8JIAAJ8jPek46U024.png-wh_500x0-wm_3-wmp_4-s_3465248596.png
  此时,mylinux4已经重新恢复成活动状态。
  3、httpchk默认检查方法
  写法:
  option httpchk
  这种写法就相当于option httpchk / ,也就是检查对应web服务器的站点根目录是否存在,如果不存在则认为服务器宕机(这种方法类似上面的第一种方法,就不再补图实验了)。
  二、配置后端web服务器日志记录客户端真实IP地址

  1、先来看一下web服务器日志,如下:
# cat /etc/httpd/logs/access_log
192.168.100.121 - - "GET / HTTP/1.1" 200 222
192.168.100.121 - - "GET / HTTP/1.1" 200 222 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
192.168.100.121 - - "GET / HTTP/1.1" 200 222
192.168.100.121 - - "GET / HTTP/1.1" 200 222 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
192.168.100.121 - - "GET /favicon.ico HTTP/1.1" 404 290  上面的日志中,第二行是我在mylinux1上使用curl访问的,而后面的都是在windows客户端通过haproxy的代理连接访问的,但是apache的日志中显示的用户IP地址都是192.168.100.121,也就是mylinux1的IP地址,这实际上不是真实的客户访问IP。如果想让web服务器记录真实的客户访问IP,则需要调整以下设置。
  2、修改haproxy配置文件
  在listen中添加forwardfor选项,注意:该选项只有放在listen段中才能生效,而放在global,default等其他段中无效。
listenwebsites
      bind192.168.100.120:80
      option   forwardfor
      #optionhttpchk GET /info.txt
      #optionhttpchk HEAD /check.html HTTP/1.0
      timeoutserver15s
      timeoutconnect 30s
      servermylinux3192.168.100.181:80 check port 80 inter 2000 fall 3
      servermylinux4192.168.100.182:80 check port 80 inter 2000 fall 3  3、修改web服务器日志格式
  下面以apache为例,如果想要apache记录客户端的真实IP地址,还需要修改apache的日志格式。
  # vi /etc/httpd/conf/httpd.conf
  # grep LogFormat /etc/httpd/conf/httpd.conf
  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  #LogFormat "%h %l %u %t \"%r\" %>s %b" common
  LogFormat "\"%{X-Forwarded-For}i\" %V %A %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" common
  LogFormat "%{Referer}i -> %U" referer
  LogFormat "%{User-agent}i" agent
  #LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
  注释掉原有的日志格式(我这里是common格式,如果是其他模式可以依样修改),然后添加一行新的common格式,使用蓝色部分中的模式匹配真实IP地址。
  4、重启web服务
# /etc/init.d/httpd restart
Stopping httpd:                                          
Starting httpd: httpd: apr_sockaddr_info_get() failed for mylinux3.contoso.com
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           5、使用haproxy代理访问测试
# tail -f /etc/httpd/logs/access_log
"192.168.100.1" 192.168.100.120 192.168.100.181 "GET / HTTP/1.1" 200 222 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
192.168.100.121 - - "GET / HTTP/1.1" 200 222 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
"192.168.100.1" 192.168.100.120 192.168.100.181 "GET /favicon.ico HTTP/1.1" 404 290 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
192.168.100.121 - - "GET /favicon.ico HTTP/1.1" 404 290 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"  可以看到,已经可以记录客户端的真实IP了。
  三、haproxy的后端服务器backup设置
  haproxy可以设置后端服务器的高可用,也就是可以有多个服务器,但是正常情况下,只有一部分提供服务,而只有在正常提供服务的机器宕机之后,备用机器才会提供服务。
  listenwebsites
        bind192.168.100.120:80
        option   forwardfor
        #optionhttpchk GET /info.txt
        #optionhttpchk HEAD /check.html HTTP/1.0
        timeoutserver15s
        timeoutconnect 30s
        servermylinux3192.168.100.181:80 check port 80 inter 2000 fall 3
        servermylinux4192.168.100.182:80 check port 80 inter 2000 fall 3 backup
  这里设置mylinux4是备用机器,正常情况下只有mylinux3提供服务,而在haproxy认为mylinux3挂掉之后,才会启用mylinux4提供服务。
# service haproxy check
Configuration file is valid
# service haproxy restart
Stop haproxy successful.
Start haproxy successful.
# service haproxy check
Configuration file is valid
# service haproxy restart
Stop haproxy successful.
Start haproxy successful.
# curl http://192.168.100.181
mylinux3
# curl http://192.168.100.182
mylinux4
# for i in {1..20};do curl http://192.168.100.120/;done
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3
mylinux3  

  说明在mylinux3正常的情况下,mylinux4是不提供服务的,只当做备用机器,下面将mylinux3的web服务关闭,再进行测试:
# /etc/init.d/httpd stop
Stopping httpd:                                          
#http://s2.运维网.com/wyfs02/M00/88/54/wKioL1fv-YSSuJufAAKc662TZNA159.png-wh_500x0-wm_3-wmp_4-s_1379630308.png
  mylinux3已经关闭httpd服务,在监控界面显示为不可用状态。
# for i in {1..20};do curl http://192.168.100.120/;done
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4
mylinux4  此时,访问haproxy代理链接,全部都是转发给mylinux4,即我在haproxy配置文件中设置的备用机器。
  另外,这里backup主机提供服务的前提是所有正常服务的主机全部都不能通过健康检查,即haproxy认为所有的提供服务的主机都是宕机状态(我这里只有一台,如果有多台的话,必须是不加backup的所有主机都无法提供服务),才会启用第一个backup主机提供服务。当然这样实际上不太好,如果正常情况下提供服务的主机有多台,而backup的主机数量较少,我们可能希望启动所有的backup主机,就需要添加如下参数:

  option allbackups
  四、Acl规则
  1、首先在web服务器上创建虚拟主机

  1)mylinux3
# cat vhost.conf

    ServerAdmin admin@web1.com
    DocumentRoot /var/www/html/web1
    ServerName www.web1.com
    ErrorLog logs/web1-error.log
    CustomLog logs/web1-access.log common


    ServerAdmin admin@web2.com
    DocumentRoot /var/www/html/web2
    ServerName www.web2.com
    ErrorLog logs/web2-error.log
    CustomLog logs/web2-access.log common

# mkdir -p /var/www/html/{web1,web2}
# echo web1 >>/var/www/html/web1/index.html
# echo web2 >>/var/www/html/web2/index.html
# /etc/init.d/httpd start
Starting httpd:                                          
# curl http://192.168.100.181:8001/
web1
# curl http://192.168.100.181:8002/
web2  2)mylinux4
# cat vhost.conf

    ServerAdmin admin@web3.com
    DocumentRoot /var/www/html/web3
    ServerName www.web3.com
    ErrorLog logs/web3-error.log
    CustomLog logs/web3-access.log common


    ServerAdmin admin@web4.com
    DocumentRoot /var/www/html/web4
    ServerName www.web4.com
    ErrorLog logs/web4-error.log
    CustomLog logs/web4-access.log common

# mkdir -p /var/www/html/{web3,web4}
# for i in {3..4};do echo web$i >> /var/www/html/web$i/index.html;done
# /etc/init.d/httpd start
Starting httpd:                                          
# curl http://192.168.100.182:8001/
web3
# curl http://192.168.100.182:8002/
web4  2、修改haproxy配置文件
global
      #log 127.0.0.1local0
log 127.0.0.1:514local0warning
      pidfile /usr/local/haproxy/var/run/haproxy.pid
      daemon
maxconn 4096
chroot /usr/local/haproxy/var/chroot
user haproxy
group haproxy
      nbproc 1
defaults
logglobal
      mode    http
retries3
      optionhttplog
      optionhttpclose
      optiondontlognull
      optionforwardfor
optionredispatch
maxconn2000
      balance roundrobin
timeout connect 5000
timeout client50000
timeoutserver          50000
listenhaproxy_stats
      bind   *:8000
      mode   http
      option httplog
      maxconn 20
      stats enable
      stats refresh 30s
      stats uri /haproxy_status
      stats auth admin:123456
      stats hide-version
#listenwebsites
#      bind192.168.100.120:80
#      option   forwardfor
#      #optionhttpchk GET /info.txt
#      #optionhttpchk HEAD /check.html HTTP/1.0
#      timeoutserver15s
#      timeoutconnect 30s
#      servermylinux3192.168.100.181:80 check port 80 inter 2000 fall 3
#      servermylinux4192.168.100.182:80 check port 80 inter 2000 fall 3 backup
#
frontend web
         bind 192.168.100.121:80
         acl mylinux3_dom hdr(host) -i www.mylinux3.com #acl规则名称为mylinux3_dom,规则为检查访问域名是否为www.mylinux3.com,-i表示不区分大小写
         acl mylinux4_dom hdr(host) -i www.mylinux4.com
         use_backend mylinux3 if mylinux3_dom #如果符合mylinux3_dom规则,则转发给mylinux3的后端作用域
         use_backend mylinux4 if mylinux4_dom #如果符合mylinux4_dom规则,则转发给mylinux4的后端作用域
         default_backend mylinux3#默认情况下转发给mylinux3的后端作用域
backendmylinux3   #定义一个后端作用域
         balanceleastconn#轮询方式,最小连接数
         option   httpclose#每次请求完毕后,主动关闭http通道
         option   forwardfor#如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip
         server   web1192.168.100.181:8001 check port 8001 inter 2000 fall 1
         server   web2192.168.100.181:8002 check port 8002 inter 2000 fall 1
backendmylinux4
         balanceroundrobin
         option   httpclose
         option   forwardfor
         option   redispatch#当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
         #option   httpchk/index.html HTTP/1.0
         server   web1192.168.100.182:8001 check port 8001 inter 1000 fall 2
         server   web2192.168.100.182:8002 check port 8002 inter 1000 fall 2  3、重启haproxy服务
# service haproxy restart
Stop haproxy successful.
Start haproxy successful.  4、查看监控界面
http://s5.运维网.com/wyfs02/M01/88/58/wKiom1fwnkChCPR4AAa93Ldhmv0862.jpg-wh_500x0-wm_3-wmp_4-s_3820976144.jpg
  5、修改windows客户端hosts文件
  注:这里是因为没有DNS,所以windows要进行访问需要修改hosts文件,如果是生产环境,haproxy代理绑定外网IP,然后通过DNS将域名进行解析,就可以直接通过域名访问了。
http://s1.运维网.com/wyfs02/M01/88/55/wKioL1fwnxyBiDUeAAGFwY7RsTc681.jpg-wh_500x0-wm_3-wmp_4-s_4138711980.jpg
  然后访问www.mylinux3.com
http://s1.运维网.com/wyfs02/M00/88/58/wKiom1fwn7TB2a5FAACKgGIW4Lc307.jpg-wh_500x0-wm_3-wmp_4-s_1115408780.jpg
http://s4.运维网.com/wyfs02/M01/88/55/wKioL1fwn7XDAfUdAACK-ALcqYw191.jpg-wh_500x0-wm_3-wmp_4-s_408788157.jpg
  然后访问www.mylinux4.com
http://s1.运维网.com/wyfs02/M02/88/55/wKioL1fwn9LS01qyAACc0qhvJig532.jpg-wh_500x0-wm_3-wmp_4-s_1441093266.jpg
http://s1.运维网.com/wyfs02/M01/88/58/wKiom1fwn9OwTolFAACc5kcVoZ8355.jpg-wh_500x0-wm_3-wmp_4-s_326823979.jpg
  而访问http://192.168.100.121/
http://s2.运维网.com/wyfs02/M02/88/55/wKioL1fwoNPRGSS8AACYPiM91ew336.jpg-wh_500x0-wm_3-wmp_4-s_1032004030.jpg
http://s1.运维网.com/wyfs02/M00/88/58/wKiom1fwoNSCzxjEAACanDnFNn0663.jpg-wh_500x0-wm_3-wmp_4-s_458108147.jpg
  6、在linux上进行测试
# vi /etc/hosts
# tail -1 /etc/hosts
192.168.100.121www.mylinux3.comwww.mylinux4.com
# for i in {1..10};do curl http://www.mylinux3.com/;done
web1
web2
web1
web2
web1
web2
web1
web2
web1
web2
# for i in {1..10};do curl http://www.mylinux4.com/;done
web3
web4
web3
web4
web3
web4
web3
web4
web3
web4
# for i in {1..10};do curl http://192.168.100.121/;done
web1
web2
web1
web2
web1
web2
web1
web2
web1
web2  综合上述测试结果,只要是符合mylinux3_dom规则的都会转发给backend为mylinux3进行展示,也就是mylinux3上的web1和web2,而符合mylinux4_dom规则的都会转发给backend为mylinux4进行展示,也就是mylinux4上的web3和web4。
  五、haproxy的301跳转
  1、修改haproxy配置文件

  这里只修改frontend段,所以就把修改部分粘贴出来,其他的和上面的保持一致。
  frontend web
           bind 192.168.100.121:80
           acl mylinux3_dom hdr(host) -i www.mylinux3.com
           acl mylinux4_dom hdr(host) -i www.mylinux4.com
           acl mylinux_dom hdr(host) -i www.mylinux.com
           redirect prefix http://www.baidu.com code 301 if mylinux_dom
  

           use_backend mylinux3 if mylinux3_dom
           use_backend mylinux4 if mylinux4_dom
           default_backend mylinux3
  2、修改windows配置文件
  192.168.100.121www.mylinux3.comwww.mylinux4.comwww.mylinux.com
  3、测试配置结果
  浏览器中输入http://www.mylinux.com
http://s4.运维网.com/wyfs02/M02/88/58/wKiom1fwpg3SZznlAAD7_XW-e-k238.jpg-wh_500x0-wm_3-wmp_4-s_1015410847.jpg
http://s5.运维网.com/wyfs02/M02/88/58/wKiom1fwphDhg6nHAAGDwggCa-4373.jpg-wh_500x0-wm_3-wmp_4-s_750477675.jpg
  可以看到,已经成功的跳转到百度的界面了。
  六、haproxy动静分离
  1、web服务器创建相应目录

# mkdir /var/www/html/web1/php
# echo "php on web1" >>/var/www/html/web1/php/index.html
# mkdir /var/www/html/web2/php
# echo "php on web2" >>/var/www/html/web2/php/index.html
# curl http://192.168.100.181:8001/php/
php on web1
# curl http://192.168.100.181:8002/php/
php on web2
# mkdir /var/www/html/web3/java
# echo "java on web3" >>/var/www/html/web3/java/index.html
# mkdir /var/www/html/web4/java
# echo "java on web4" >>/var/www/html/web4/java/index.html
# curl http://192.168.100.182:8001/java/
java on web3
# curl http://192.168.100.182:8002/java/
java on web4  2、修改haproxy配置文件
  frontend web
           bind 192.168.100.121:80
           #acl mylinux3_dom hdr(host) -i www.mylinux3.com
           #acl mylinux4_dom hdr(host) -i www.mylinux4.com
           #acl mylinux_dom hdr(host) -i www.mylinux.com
           #redirect prefix http://www.baidu.com code 301 if mylinux_dom
  

           #use_backend mylinux3 if mylinux3_dom
           #use_backend mylinux4 if mylinux4_dom
           #default_backend mylinux3
           aclweb_php   path_beg/php/
           aclweb_javapath   /java/
           aclweb_static path/
  
           use_backendmylinux3if web_php #访问路径中包含php的就转给mylinux3后端作用域,这里是模仿动态php内容转发
           use_backendmylinux4if web_java #访问路径中包含java的就转给mylinux4后端作用域,这里是模仿动态java内容转发
           default_backend web80#默认情况下转给web80后端作用域,相当于静态内容
  

  

  backendmylinux3
           balanceleastconn
           option   httpclose
           option   forwardfor
           server   web1192.168.100.181:8001 check port 8001 inter 2000 fall 1
           server   web2192.168.100.181:8002 check port 8002 inter 2000 fall 1
  

  backendmylinux4
           balanceroundrobin
           option   httpclose
           option   forwardfor
           option   redispatch
           #option   httpchk/index.html HTTP/1.0
           server   web1192.168.100.182:8001 check port 8001 inter 1000 fall 2
           server   web2192.168.100.182:8002 check port 8002 inter 1000 fall 2
  

  backendweb80
           balanceroundrobin
           option   httpclose
           option   forwardfor
           server   web1192.168.100.181:80check port 80 inter 2000 fall 3
           server   web2192.168.100.182:80check port 80 inter 2000 fall 3
  3、重启haproxy服务
# service haproxy restart
Stop haproxy successful.
Start haproxy successful.  4、测试访问结果
# curl http://192.168.100.121/
mylinux3
# curl http://192.168.100.121/
mylinux4
# curl http://192.168.100.121/php/
php on web1
# curl http://192.168.100.121/php/
php on web2
# curl http://192.168.100.121/java/
java on web3
# curl http://192.168.100.121/java/
java on web4  这样就实现了网站动态内容和静态内容的分离,默认情况下是静态内容,如果是php则访问存在php的后端作用域,如果是java则访问java内容放置的后端作用域。
  另外,也可以基于扩展名进行转发,只要是静态的内容,如.html/.jpg./png/.txt等统一做跳转,而动态内容,如.php/.java等统一做跳转,配置的格式如下:
aclweb_pic   path_end.gif .jpg .png .bmp
aclweb_dynamicpath_end   .java .php .js


use_backend pic if web_pic
use_backend dynamic if web_dynamic
  七、基于客户端进行7层跳转
  很多网站都有基于访问客户端进行展示对应页面的功能,比如PC访问是www.***.com,安卓手机访问是android.***.com,IPhone访问是iphone.***.com,这样的效果很多是通过代码实现的,但实际上haproxy就能实现类似的功能。
  修改配置文件,添加如下内容:

  acl iphone_users hdr_sub(user-agent) -i iphone
  redirect prefix http://iphone.***.com if iphone_users
  acl android_users hdr_sub(user-agent) -i android
  redirect prefix http://android.***.com if android_users
  这里因为限制,无法进行测试,所以就不再补图说明了。但是需要注意一点,user-agent设备类型可以到web服务器日志中查看,需要检查是否iPhone设备的类型都是iphone,比如iphone5,iphone6,ipad都进行访问,然后查看日志,找出对应的设备类型,要根据日志中的设备类型进行设置,以免出现设备访问的页面出现不匹配设备的情况。
  八、haproxy设置访问控制
  1、修改配置文件,添加下面黄色部分内容
  frontend web
           bind 192.168.100.121:80
           #acl mylinux3_dom hdr(host) -i www.mylinux3.com
           #acl mylinux4_dom hdr(host) -i www.mylinux4.com
           #acl mylinux_dom hdr(host) -i www.mylinux.com
           #redirect prefix http://www.baidu.com code 301 if mylinux_dom
  

           #use_backend mylinux3 if mylinux3_dom
           #use_backend mylinux4 if mylinux4_dom
           #default_backend mylinux3
           aclweb_php   path_beg/php/
           aclweb_javapath   /java/
           
           aclvalid_ipsrc172.16.100.0/24
           http-request deny if !valid_ip#在之前的版本中时block if !valid_ip,现在换为http-request deny,功能是一样的
  

           use_backendmylinux3if web_php
           use_backendmylinux4if web_java
           default_backend web80
  2、重启haproxy服务
# service haproxy restart
Stop haproxy successful.
Start haproxy successful.  3、测试结果
http://s5.运维网.com/wyfs02/M02/88/58/wKiom1fwuBnC7IMCAAEchlW8Cp8875.jpg-wh_500x0-wm_3-wmp_4-s_355389213.jpg
  Windows客户端没有172.16.100.0/24段的IP地址,所以访问拒绝。
  这个功能可以用来提供一个内部测试的站点,然后只允许内部IP访问,其他外部访问统统拒绝,也是一个不错的测试方式。
  




页: [1]
查看完整版本: Haproxy其他功能及配置