当前位置: 首页 > news >正文

动静分离技术

一、HAproxy 动静分离

1、概念:

HAproxy 动静分离技术是一种用于优化 Web 服务器性能和提高用户体验的策略,它通过将动态内容和静态内容分别路由到不同的后端服务器来实现,减轻服务器负载,提高网站的响应速度。

动态内容包括由服务器动态生成的网页内容,如数据库查询结果、用户登录状态等;

静态内容包括不变的文件,如图像、CSS、视频文件等。

2、示例:

(1) 环境:

HAproxy:192.168.198.131

web1:192.168.198.132

web2:192.168.198.133

PHP1:192.168.198.129

PHP2:192.168.198.130

(2) web 配置:

yum install -y httpd

echo web111 > /var/www/html/index.html

echo web222 > /var/www/html/index.html

systemctl restart httpd

(3) php 配置:

yum install -y httpd php

vim /var/www/html/index.php

<?php

phpinfo();

?>

systemctl restart httpd

(4) 配置 haproxy:

vim /etc/haproxy/haproxy.cfg

globallog 127.0.0.1 local3 infomaxconn 4096user beangroup beandaemon nbproc 1 pidfile /run/haproxy.piddefaults log global mode http maxconn 2048 retries 3 option redispatch timeout connect 5000 timeout client 50000 timeout server 50000 option abortonclose stats uri /admin?stats stats realm Private lands stats auth admin:123 stats hide-version frontend http-in bind 0.0.0.0:80 mode http log global option httplog option httpclose acl php url_reg -i \.php$ acl html url_reg -i \.html$ use_backend php-server if php use_backend html-server if html default_backend html-serverbackend php-server mode http balance roundrobin option httpchk GET /index.php cookie SERVERID insert indirect nocache server php-A 192.168.198.129:80 weight 1 cookie 1 check inter 2000 rise 2 fall 5 server php-B 192.168.198.130:80 weight 1 cookie 2 check inter 2000 rise 2 fall 5backend html-server mode http balance roundrobin option httpchk GET /index.html cookie SERVERID insert indirect nocache server html-A 192.168.198.132:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5 server html-B 192.168.198.133:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5

定义两个 ACL,分别匹配 URL 以 .php 和 .html 为结尾的请求 ;.php 请求交给 php-server 后端服务器,.html 请求交给 html-server 后端服务器。

如果请求的 URL 不匹配任何一个 ACL,将使用 html-server 的后端服务器来处理这些请求。

php-server 与 html-server 的配置信息。

(5) 测试效果:

启动 haproxy:systemctl restart haproxy

登录 haproxy 统计页面:

二、nginx 动静分离示例:

1、环境:

nginx:192.168.198.128

web1:192.168.198.132

web2:192.168.198.133

PHP1:192.168.198.129

PHP2:192.168.198.130

配置域名解析:

2、nginx 配置:

vim /etc/nginx/nginx.conf

● upstream:定义了 html 和 php 两个负载均衡组,包括后端的服务器以及监听的端口号;

● location /:用于处理根 URL 路径(/)的请求,它使用 proxy_pass 指令将请求代理给 html 负载均衡组,再分发给 web1 和 web2 服务器。

● location ~ \.php$:使用正则表达式匹配以 .php 结尾的 URL 路径,使用proxy_pass 指令将请求代理给 php 负载均衡组,再分发给 php1 和 php2 服务器。

http://www.lryc.cn/news/214642.html

相关文章:

  • STM32单片机智能小车一PWM方式实现小车调速和转向
  • 灰狼优化算法(GWO)python
  • 项目知识点总结-住房图片信息添加-Excel导出
  • 第三届iEnglish全国ETP大赛决赛即将启动
  • 创造产业链协同优势后,凌雄科技在DaaS行业转动成长飞轮
  • 【protobuf】protobuf自定义数据格式,CMake编译C++文件读写自定义数据
  • 解决:http://localhost:8080 不在以下 request 合法域名列表中
  • Linux普通用户提权(sudo)
  • 链表指定节点的插入
  • 解决问题Conda:CondaValueError: Malformed version string ‘~’ : invalid character(s)
  • Sci Immunol丨Tim-3 适配器蛋白 Bat3 是耐受性树突状细胞
  • 天软特色因子看板(2023.10 第14期)
  • Photoshop(PS)2021版 安装教程(图文教程超详细)
  • 详解React:Props构建可复用UI的基石
  • 【Unity】【VR开发疑难】Unity运行就报无法启动XR Plugin
  • 本地启动Elasticsearch(docker启动)
  • JVM修炼印记之初识
  • 开关电源老化试验和性能检测系统软件
  • 水库大坝可视化智能远程监管方案,助力安全监测智能巡检
  • C#学习系列之虚方法和多态
  • 面试算法44:二叉树中每层的最大值
  • JWT的头部、载荷和签名分别包含哪些信息?
  • 【烧火柴问题】奇思妙想火柴
  • C++数据结构算法篇Ⅰ
  • Python selenium获取元素信息
  • 测试Winsock的select
  • CentOS 搭建 Hadoop3 高可用集群
  • ModuleNotFoundError: No module named ‘paddle.fluid.incubate.fleet‘
  • 【Java】Java中的引用类型
  • File类、方法递归