帝王 发表于 2019-1-1 12:27:20

Haproxy重定向与读写分离

重定向
  server1:
  先设置黑名单
  vim /etc/haproxy
90         acl badhost src 172.25.88.250  
91         block if badhost
  直接给用户返回403,不太友好,所以重定向应运而生
https://s3.运维网.com/wyfs02/M00/8F/28/wKioL1jVLu6Dsrf3AACq3nIJXhI454.png
错误重定向(403)
  vim /etc/httpd/conf/httpd.conf Listen 8000
  vim /var/www/html/index.html 攻城师正在修复ING... 其实我就是不想让你访问!!!啦啦啦!
server1:
  vim /etc/haproxy
90         acl badhost src 172.25.88.250  
91         block if badhost
  
92         errorloc 403 http://172.25.88.1:8000
  badhost(172.25.88.250)在浏览器中访问172.25.88.1 自动跳转到http://172.25.88.1:8000
https://s3.运维网.com/wyfs02/M02/8F/28/wKioL1jVLu7jvEMsAAA0RcUBgR4856.png
黑名单重定向
server1:
      aclbadhost src 172.25.88.250  
    redirect location http://172.25.88.1:8000 ifbadhost
  badhost(172.25.88.250)在浏览器中访问172.25.88.1 自动跳转到http://172.25.4.11:8000
RS全挂了以后(302临时重定向)
  server4:
  /etc/init.d/httpd stop
  server1:
  vim /etc/haproxy
103 backend app  
104   balance   roundrobin
  
105   serverweb2 172.25.88.4:80 check
  
106   serverlocal 172.25.88.1:8000 backup
  访问172.25.88.1,跳转到8000显示工程师正在修复ING(页面需要自己写)
  网易:301    永久重定向      cdn
  302    临时重定向,不推荐
https://s3.运维网.com/wyfs02/M01/8F/28/wKioL1jVLvDD9qVhAAC_1AWlTiE814.png
  server1:
  vim /etc/haproxy
94         redirect code 301 location http://172.25.88.1:8000 if badhost  如果不写301,只写code默认是302,临时重定向
https://s3.运维网.com/wyfs02/M01/8F/2A/wKiom1jVLu-Q8zwKAABcgFobMpc690.png
网页重定向
1.访问westos.org自动跳转到www.westos.org
  真机:
  
  vim /etc/hosts
172.25.88.1   server1.lalala.com www.westos.org westos.orgserver1:
  vim /etc/haproxy
acl westos.org hdr_beg(host) -i westos.org  
redirect code 301 location http://www.westos.org if westos.org
https://s1.运维网.com/wyfs02/M02/8F/2A/wKiom1jVLvfxoJTeAACevLaNXDE079.png
https://s3.运维网.com/wyfs02/M00/8F/2A/wKiom1jVLviADzznAAAYBkRrlgM046.png

2.访问IP自动跳转到域名
server1:
  vim /etc/haproxy
acl 172.25.88.1 hdr(host) -i 172.25.88.1  
redirect code 301 location http://www.westos.org if 172.25.88.1

https://s3.运维网.com/wyfs02/M00/8F/28/wKioL1jVLvixtxuEAAASWBDUEQ0075.png
https://s3.运维网.com/wyfs02/M01/8F/2A/wKiom1jVLvmRSvdnAAAbTEaDQn4016.png
读写分离
server11:
  vim /etc/haproxy
106         acl read method GET  
107         acl read method HEAD
  
108         acl write method PUT
  
109         acl write method POST
  
119   use_backend app          if write
  
120   default_backend static
  

  
123 backend static
  
124         balance   roundrobin
  
125         server      web1 172.25.88.3:80 check    读
  
126
  
127 backendapp
  
128         balance   roundrobin
  
129         server      web2 172.25.88.4:80 check    写
server3,server4:
  yum install php -y cd /var/www/html/upload/
  mv * ..
  chmod 777 upload
  server3和server4的upload都有读写权限哦~
https://s2.运维网.com/wyfs02/M02/8F/28/wKioL1jVLvvTYTmTAAD2wAXje-c746.png
https://s2.运维网.com/wyfs02/M00/8F/2A/wKiom1jVLvyzGomoAACD7Lq6iuU300.png
  记得将upload中的size改大一点.
&& ($_FILES["file"]["size"] < 20000000))  /etc/init.d/httpd restart   因为装了php模块,还是重启一下吧~
检测
  在浏览器中访问www.westos.org/images
  因为只有server3中有images ,server4中没有,所以读端在server3
https://s3.运维网.com/wyfs02/M00/8F/28/wKioL1jVLv2RimXwAAC_D5N_7Oo932.png
  上传图片(写)在server4的upload中
  尽管server3,server4的upload都是777
https://s3.运维网.com/wyfs02/M01/8F/2A/wKiom1jVLv_hF3c0AAEJA6PSA30223.png


页: [1]
查看完整版本: Haproxy重定向与读写分离