haproxy动静分离

约定不等于承诺〃 2022-10-01 13:51 287阅读 0赞

haproxy:工作在ISO 七层 根据http协议(或者工作在ISO四层 根据tcp协议) 提供web服务的负载均衡调度器

配置文件 /etc/haproxy/haproxy.cfg

配置文件两部分组成

global settings: 对haproxy进程自身属性的设定----------全局设定段

proxies: 对代理的设定 -----------------代理设定段

defaults

frontend

backend

listen

其中defaults为proxies提供默认属性,frontend接受客户端的请求,backend连接后端的上游服务器(类似于nginx的upstream),listen是特定的frontend与backend的组合

定义一个完整的代理的方式:

frontend

backend

``listen

``defaults段分析

``

``option httpclose:使用短连接

``option redispath:使用cookie保持会话,如果后端的server宕机,则使用redispath 重定向另一个路径继续保持会话;

``option http-server-close :当keep-alive超时时,使用该选项在服务器上关闭会话

``timeout connect :haproxy转发到后边upstream server 时等待的时长

``timeout client :客户端非活动状态的超时时长

``timeout server : haproxy和后边的服务器段保持一个会话,当后台服务器down掉后,haproxy等待的超时时间

``timeout-keep-alive:定义保持连接模式的超时时长

``timeout-check : 建立状态检测时间的超时时间

``maxconn :每一个server最大并发连接数

``

``

实验环境:

3台虚拟机

haproxy双网卡:公网:172.16.17.3

内网:192.168.17.1

上游服务器1:192.168.17.11

上游服务器2:192.168.17.12

``

分别配置2台上游服务器提供配置页面并测试:

``

``

``

给172.16.17.3安装配置haproxy

启用全局日志功能

编辑rsyslog.conf

  1. #vim /etc/rsyslog.conf
  2. # Provides UDP syslog
  3. reception
  4. $ModLoad imudp
  5. $UDPServerRun 514
  6. # Provides TCP syslog
  7. reception
  8. $ModLoad imtcp
  9. $InputTCPServerRun 514

``

在另一行

local2.* /var/log/haproxy.log

``

#service rsyslog restart

# vim /etc/haproxy/haproxy.cfg

log 127.0.0.1 local2

# service haproxy restart 重启服务

haproxy动静分离的实现

node2服务器安装php

yum -y install php php-mysql

提供php动态页面

  1. 配置haproxy配置文件
  2. #vim /etc/haproxy/haproxy.cfg
  3. frontend websrvs
  4. bind *:80
  5. acl url_static path_beg -i /static /p_w_picpaths /javascript /stylesheets
  6. acl url_static path_end -i .jpg .gif .png .css .js .html
  7. acl host_static hdr_beg(host) -i img. video. download. ftp. imags. videos.
  8. acl url_php path_end -i .php
  9. use_backend static if url_static or host_static
  10. use_backend dynamic if url_php
  11. default_backend dynamic
  12. backend static
  13. balance roundrobin
  14. server node1 192.168.17.11:80 check maxconn 30000
  15. backend dynamic
  16. balance roundrobin
  17. server node2 192.168.17.12:80 check maxconn 1000
  18. # service haproxy restart
  19. 客户端测试 动静分离

``

``

``

``

``

静态资源请求发往node1 节点

静态资源请求发往node2 节点

转载于:https://blog.51cto.com/tliss/1557133

发表评论

表情:
评论列表 (有 0 条评论,287人围观)

还没有评论,来说两句吧...

相关阅读